Установить метаданные JPEG - проблемы с реализацией - PullRequest
6 голосов
/ 14 февраля 2011

В ходе предыдущих исследований я обнаружил, что не сложно установить свойства MetaData для изображения. Например, я могу прочитать изображение JPEG в растровом объекте и изменить его дату «Исходный снимок» с помощью метода SetPropertyItem изображения (я уже исследовал формат и перечисление для этого тоже).

Однако, хотя фактическая часть MetaData кажется легкой, я столкнулся с парочкой раздражающих проблем с реализацией:

1) Когда я вызываю Save () для растрового изображения, не похоже, что используются исходные настройки кодирования изображения. В результате уровень сжатия изменяется (предположительно, до некоторого значения по умолчанию); Я вижу, что размер файла значительно уменьшился после моего вызова Save (). Я знаю, что вы можете настроить параметры кодирования для изображения в вызове Save (), но, честно говоря, я хочу только изменить метаданные изображения; нет ли простого способа сохранить изображение, используя его исходные настройки кодирования? Даже если бы я мог напрямую ссылаться на существующие настройки кодирования изображения в вызове Save (), это помогло бы.

2) По-видимому, оригинальный файл блокируется, когда вы читаете его в растровый объект. В результате я не могу сохранить изображение под его исходным именем без лишних раздумий: в настоящее время я рисую прочитанное изображение из файла на закадровом растровом изображении, удаляю исходное изображение, а затем сохраняю закадровое изображение. Опять же, это похоже на огромную дополнительную работу, когда все, что я хочу сделать, это обновить метаданные в файле изображения.

Любые предложения, которые вы можете предложить, будут наиболее цениться ... объем работы, которую я должен сделать, чтобы обновить метаданные файла JPEG (большинство из которых не имеет ничего общего с фактическим изменением метаданных), приводит меня Интересно, мне не хватает более простых или лучших способов сделать это?

1 Ответ

1 голос
/ 14 февраля 2011

Что вы хотите сделать, это отредактировать данные EXIF.То, что вы делаете сейчас, это повторное сжатие изображения, и это, как вы заметили, приведет к потере качества.

Смотрите этот пример кода для редактирования EXIF: http://www.dreamincode.net/code/snippet3144.htm

...