Exif – один из форматов данных, в котором содержится дополнительная информация о изображении (JPEG, TIFF). Это может быть краткая информация о названии и авторе, или о том когда был сделан снимок. Это может быть также подробная информация о параметрах устройства, при помощи которого изображение было получено.
С чтением и записью Exif-а под WPF оказалось не совсем все очевидно. Вся проблема в многообразии форматов, а также в попытке микрософта все унифицировать и предложить свой формат.
Получить основную информацию достаточно легко:
Stream imageStreamSource
= new FileStream
(fn, FileMode
.Open, FileAccess
.ReadWrite, FileShare
.ReadWrite);
BitmapDecoder decoder
= BitmapDecoder
.Create(imageStreamSource, BitmapCreateOptions
.PreservePixelFormat, BitmapCacheOption
.Default);
InPlaceBitmapMetadataWriter pngInplace
= decoder
.Frames[0].CreateInPlaceBitmapMetadataWriter();
if (pngInplace
!= null)
{
if (pngInplace
.CameraModel != null)
tbExifInfo
.Text = pngInplace
.CameraModel.ToString();
else
tbExifInfo
.Text = "не указана";
}
else
tbExifInfo
.Text = "не возможно получить метаданные";
Вот с записью Exif возникают некоторые проблемы. В документации слабо освещен тот момент, что нужно обязательно указать отступ – место, которое выделяется для хранения данных:
Continue reading →