У меня проблема с сохранением изображения после изменения его метаданных. В принципе, я хочу открыть свое изображение, отобразить его, изменить его метаданные EXIF и сохранить его.Сохранить изображение после изменения метаданных
Во-первых, у меня была проблема с попыткой сохранить изображение, потому что исходный файл был заблокирован (у меня была общая ошибка GTI +). Прочитав некоторые сообщения здесь и выяснив, в чем проблема, я решил проблему блокировки с использованием ключевого слова using.
Но проблема в том, что если я использую «использование», список свойств PropertyItems моего изображения пуст, и я не могу изменить свои метаданные.
Вот как я загружаю мое изображение (с различными тестами)
this.image = new Bitmap(this.path); // this cause lock on file
/* the following doesn't lock the file, but image.propertyItems is empty */
//using (var bmpTemp = new Bitmap(this.path))
//{
// this.image = new Bitmap(bmpTemp);
//}
Использование StreamReader или MemoryStream не помогает ...
А вот как я могу изменить и сохранить мое изображение:
PropertyItem p = this.photo.Image.GetPropertyItem(0x5090);
p.Id = 0x320;
p.Type = 2; // Type ASCII
p.Len = boxTitle.Text.Length;
p.Value = Encoding.ASCII.GetBytes(boxTitle.Text);
this.photo.Image.SetPropertyItem(p);
this.photo.Image.Save(this.photo.Path);
Можете ли вы объяснить мне, почему нет свойстваItems, когда я использую «использование» и как это сделать, чтобы изменить метаданные изображения и сохранить его?
Кажется, что работа, но чтение/запись метаданных для каждой картинки вызывает проблемы с большим количеством фотографий. – thibon