Чтение данных файла из ресурсов изображения iOS

Как я могу прочитать необработанные данные файла из ресурсов изображения iOS?

Например, набор изображений «Изображение», содержащий:

  1. значок-1x.png
  2. значок-2x.png
  3. значок-3x.png

Как использовать NSBundle или другие методы для загрузки необработанных данных файла PNG (а не для декодирования данных изображения), например, icon-1x.png?


person stojanman    schedule 22.03.2017    source источник
comment
этот icon-1x.png одинаков для icon-2x или разных изображений?   -  person Antony Raphel    schedule 22.03.2017
comment
@AntonyRafel другой   -  person stojanman    schedule 22.03.2017
comment
Вот рабочий пример переноса двоичных данных в набор фрагментов PNG IDAT с последующим преобразованием обратно в буфер необработанных данных. stackoverflow.com/q/56267037/763355   -  person MoDJ    schedule 01.06.2019


Ответы (1)


сохраните изображение с именем icon-1x.png, icon-2x.png и icon-3x.png в наборе изображений. Затем попробуйте выполнить этот цикл,

for (int i = 1; i <= 3; i++) {
    NSString *imgName = [NSString stringWithFormat:@"icon-%dx.png", i];
    UIImage *img = [UIImage imageNamed:imgName];
    NSData *pngData = UIImagePNGRepresentation(img); // Convert it in to PNG data
}

в противном случае вы можете получить из тега imageView. затем передайте это значение тега следующим образом:

NSString *imgName = [NSString stringWithFormat:@"icon-%dx.png", imageView.tag];
UIImage *img = [UIImage imageNamed:imgName];
NSData *pngData = UIImagePNGRepresentation(img); // Convert it in to PNG data
person Antony Raphel    schedule 22.03.2017
comment
Это не помогает мне, потому что не дает мне данные PNG (например, открытие файла), а скорее декодирует изображение. - person stojanman; 22.03.2017
comment
К сожалению, это не решает мою проблему. Функция UIImagePNGRepresentation преобразует растровое изображение в памяти в PNG, который отличается от байтов PNG из файла. :) - person stojanman; 23.03.2017
comment
тогда какой формат вы хотите? строка base64? - person Antony Raphel; 24.03.2017