Сохранить изображение RGBA с метаданными в iOS

Я работаю над приложением для iOS, которое выполняет некоторую обработку изображений. Результатом обработки является изображение в оттенках серого. Когда процесс будет завершен, я хочу сохранить исходное изображение RGB вместе с результатом в том же файле изображения в фотопленке, поэтому я подумал об использовании для этого альфа-канала.

Кроме того, я хочу добавить некоторые параметры, полученные в процессе обработки, в качестве метаданных изображения.

Итак, вот моя проблема. Мне не удалось найти формат изображения, совместимый с iOS, который позволяет сохранять альфа-канал вместе с метаданными. С одной стороны, изображения JPEG принимают метаданные, но не альфа-канал. С другой стороны, изображения PNG принимают альфа-канал, но не метаданные.

Любые идеи?

Заранее спасибо.


person Jom    schedule 12.04.2013    source источник


Ответы (1)


С другой стороны, изображения PNG принимают альфа-канал, но не метаданные.

Но да, метаданные.

person Community    schedule 12.04.2013
comment
Спасибо @H2CO3 за ваш комментарий. Я попытался сохранить метаданные XMP для изображений PNG. Хотя у Apple есть некоторые примитивы для метаданные XMP-PNG, мне не удалось их получить. Здесь есть несколько интересных ссылок - person Jom; 23.04.2013
comment
Другой вариант — использовать imagemagick для iOS, но это единственный способ обнаружено, что для сохранения метаданных использовалась командная строка png -imagmagick, но адаптированный для iOS с помощью MagicCommandGenesis, что, кстати, превратилось для меня в более сложную проблему. - person Jom; 23.04.2013
comment
Поэтому я, наконец, решил использовать TIFF, который также поддерживает альфа-канал и EXIF. По идее должно работать, но не повезло. Прилагаю одну из своих попыток. Любая идея? NSMutableDictionary tif = [[NSMutableDictionary alloc] init]; [tif setObject:@Description forKey:(NSString)kCGImagePropertyTIFFImageDescription]; NSMutableDictionary meta = [[NSMutableDictionary alloc] init]; [мета setObject:tif forKey:(NSString)kCGImagePropertyTIFFDictionary]; ALAssetsLibrary *lib = [новая библиотека ALAssetsLibrary]; [lib writeImageToSavedPhotosAlbum: img.CGМетаданные изображения: метазавершениеBlock:nil];` - person Jom; 23.04.2013