У меня была такая же проблема, и, по-видимому, она теперь решена, несмотря на то, что это и некоторые другие исключения gdi + очень вводят в заблуждение, я обнаружил, что на самом деле проблема заключалась в том, что параметр, отправляемый в конструктор Bitmap, был недопустимым. У меня есть этот код:
using (System.IO.FileStream fs = new System.IO.FileStream(inputImage, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite))
{
try
{
using (Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false))
{
try
{
bitmap.Save(OutputImage + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
GC.Collect();
}
catch (Exception ex)
{
throw ex;
}
}
}
catch (ArgumentException aex)
{
throw new Exception("The file received from the Map Server is not a valid jpeg image", aex);
}
}
Следующая строка вызывала ошибку:
Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false)
Файловый поток был создан из файла, загруженного с картографического сервера. Мое приложение неправильно отправляло запрос на получение изображения, и сервер возвращал что-то с расширением jpg, но на самом деле это был HTML, сообщающий мне, что произошла ошибка. Поэтому я взял это изображение и попытался создать растровое изображение с ним.
Исправление состояло в том, чтобы контролировать / проверять изображение на допустимое изображение JPEG.
Надеюсь, это поможет!