Как сохранить файл изображения в формате EXIF ​​в .NET 3.5 - PullRequest
4 голосов
/ 24 марта 2009

Я хочу сохранить изображение в формате EXIF, используя System.Drawing.Image.Save или аналогичный метод в приложении C # с использованием .NET Framework v3.5. Документация MSDN перечисляет EXIF ​​в качестве опции для ImageFormat. Тем не менее, он не поддерживается - по крайней мере, без какой-то неизвестной мне конфигурации. Когда я перечисляю встроенные кодеры через ImageCodecInfo.GetImageEncoders (), EXIF ​​не включается. (Встроенные кодеры на моем компьютере (Vista Ultimate x64): BMP, JPEG, GIF, TIFF и PNG.) Если я сохраняю изображение с помощью свойства ImageFormat.Exif, я просто получаю формат PNG по умолчанию.

Как сохранить изображение в формате EXIF ​​с помощью .NET 3.5?

Ответы [ 2 ]

4 голосов
/ 13 июля 2009

EXIF ​​- это не формат файла изображения как таковой, а формат метаданных, найденных в изображениях JPEG, соответствующий стандарту DSC (цифровая фотокамера), как указано в JEITA.

GDI + (т. Е. Microsoft .NET Framework) позволяет читать / записывать свойства изображения метаданных через Image.PropertyItems, однако свойства EXIF, предоставляемые GDI +, довольно громоздки и не преобразуют значения так, как вы ожидаете. На самом деле требуется много работы, чтобы иметь возможность естественного чтения / записи этих значений (например, вам необходимо распаковать двоичные поля, содержащие специально закодированные значения в соответствии со спецификацией JEITA).

Прямую библиотеку с открытым исходным кодом, которая реализует все стандартные свойства EXIF, можно найти по адресу http://code.google.com/p/exif-utils/ Это, вероятно, самый простой способ сделать это. См. простую включенную демонстрацию , которая читает файл, распечатывает все свойства EXIF ​​и затем добавляет свойство к изображению.

0 голосов
/ 31 марта 2009
...