Как найти причину ошибки Generic GDI + при сохранении изображения?
Имея код, который работает целую вечность при загрузке и хранении изображений, я обнаружил, что у меня естьодно изображение это нарушает этот код:
const string i1Path = @"c:\my\i1.jpg";
const string i2Path = @"c:\my\i2.jpg";
var i = Image.FromFile(i1Path);
i.Save(i2Path, ImageFormat.Jpeg);
Исключение составляет:
System.Runtime.InteropServices.ExternalException
В GDI + произошла общая ошибка.
в System.Drawing.Image.Save (имя файла строки, кодировщик ImageCodecInfo, кодировщик EncoderParameters кодировщикParams)
в System.Drawing.Image.Save (строковое имя файла, формат ImageFormat)
в ...
Насколько я вижу, в этом изображении нет ничего особенного. Он имеет размер около 250 пикселей и может быть открыт, например, в виде Средство просмотра изображений Windows или Paint.NET:
(Так как изображение выше, после загрузки в Stack Overflow больше не выдает ошибку, я поставилоригинальное изображение здесь)
Я обнаружил, что после вызоваSave
методконечный файл изображения создается с нулевыми байтами.
Я действительно не знаю, что вызывает ошибку.
Мои вопросы:
Можете ли вы придумать что-нибудь особенное, что помешало бы .NET сохранить изображение?Есть ли способ (кроме паники), чтобы сузить подобные ошибки?