2014-12-19 6 views
1

Я пытаюсь использоватьИзменение JPEG метаданных без рекомпрессии изображения в прошивкой

CGImageSourceCreateWithData CGImageDestinationCreateWithData

, а затем

CGImageDestinationAddImageFromSource

но отбрасывает любые эскизы или другую встроенную информацию в исходном файле , То, что я хочу сделать, - это прочитать в файле, изменить его метаданные и записать его только с изменениями. Но я соглашусь все прочесть и вернуть его обратно. Прямо сейчас файл изображения размером 1,2 МБ преобразуется в файл 437 КБ с потерей дополнительных данных.

Есть ли что-то иное, чем CGImage, которое я могу использовать? Можно ли это сделать с помощью API iOS?

ответ

0

Я искал операцию чтения-изменения-записи для файлов изображений, которые допускали изменения, но в остальном сохраняли неизмененные данные. Я определил с помощью исследований и тестирования, что это невозможно в iOS. Ближайшим доступным механизмом является обработка CGImage, но это позволяет вам читать только выбранную информацию из исходного изображения (например, изображение, эскиз, свойства), а затем использовать часть этой информации (изображения, свойства) для создания нового файла назначения. Невозможно включить миниатюру в новый файл назначения, и нет возможности обойти это изображение.

0

Проблема, с которой вы сталкиваетесь, заключается в том, что структура метаданных зависит от конкретного формата JPEG-файла, который вы используете.

Вам нужно посмотреть CGImageProperties. Вам нужно будет убедиться, что свойства для вашего формата файла также скопированы.

+0

Я не уверен, что понимаю, что вы говорите user3344003. Теперь я читаю jpeg-файл как NSData, создавая из него imageSource, затем читаю imageProperties, внося изменения и записывая эти измененные изображения. Процесс кажется успешным, когда я просматриваю файл извне и просматриваю его метаданные и изображение, но размер файла значительно уменьшается. У него также нет встроенного эскиза. –

+0

Вам также понадобится скопировать метаданные. Процесс зависит от формата файла, используемого для хранения метаданных. – user3344003

+0

Свойства изображения - это метаданные, не так ли? Помимо метаданных EXIF, JFIF, TIFF, IPTC и GPS, возвращаемых в свойствах, какие существуют другие метаданные? Можете ли вы объяснить, что именно я должен искать, и что мне с этим делать? Формат файла, используемый для хранения изображения, идентичен формату изображения файла, который я читаю. В этом случае JPEG. Какие еще параметры у UTI я должен указать формат? –

 Смежные вопросы

  • Нет связанных вопросов^_^