Как найти причину ошибки Generic GDI+ при сохранении изображения?C#

Место общения программистов C#
Ответить
Anonymous
 Как найти причину ошибки Generic GDI+ при сохранении изображения?

Сообщение Anonymous »

Имея код, который работает целую вечность при загрузке и сохранении изображений, я обнаружил, что у меня есть одно единственное изображение, которое нарушает этот код:

Код: Выделить всё

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+ произошла общая ошибка.
at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)

at System.Drawing.Image.Save(String filename, ImageFormat format)

at ...

Насколько я вижу, в изображении нет ничего особенного. Его размер составляет около 250 пикселей, и его можно открыть, например. Средство просмотра изображений Windows или Paint.NET:
Изображение

(Поскольку изображение выше после загрузки в Stack Overflow больше не выдает ошибку, я поместил сюда исходное изображение)
Я обнаружил, что при вызове метода Save, конечный файл изображения создается с нулевыми байтами.
Я действительно не знаю, что вызывает ошибку.
Мои вопросы:
  • Можете ли вы придумать что-нибудь особенное, что помешало бы .NET сохранить изображение?
  • Есть ли какой-нибудь способ (кроме паники) сузить количество ошибок такого рода?


Подробнее здесь: https://stackoverflow.com/questions/155 ... g-an-image
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»