Я загружал растровое изображение из файла. Когда я попытался сохранить изображение в другой файл, я получил следующую ошибку «Произошла общая ошибка в GDI +». Я считаю, что это потому, что файл заблокирован объектом изображения.
Хорошо, поэтому попытался вызвать функцию Image.Clone. Это все еще блокирует файл.
гм. Затем я пытаюсь загрузить растровое изображение из FileStream и загрузить изображение в память, чтобы GDI + не блокировал файл. Это прекрасно работает, за исключением того, что мне нужно генерировать миниатюры, используя метод Image.GetThumbnailImage, который выдает исключение из нехватки памяти. Очевидно, мне нужно держать поток открытым, чтобы остановить это исключение, но если я оставлю поток открытым, файл останется заблокированным.
Так что нехорошо с этим методом. В конце концов я создал копию файла. Так что теперь у меня есть 2 версии файла. 1 Я могу блокировать и манипулировать в моей программе на C #. Этот другой оригинальный файл остается разблокированным, в который я могу сохранить изменения. Это дает мне преимущество, позволяя мне отменить изменения даже после их сохранения, потому что я манипулирую копией файла, который не может быть изменен.
Конечно, есть лучший способ добиться этого без необходимости иметь 2 версии файла изображения. Есть идеи?