Я пытаюсь загрузить изображения (pdf и документы Word) из потока памяти, чтобы я мог манипулировать ими, прежде чем они будут добавлены в pdf. Всякий раз, когда я пытаюсь загрузить растровое изображение или GIF, я получаю одну из страшных ошибок GDI +.Ошибка загрузки Bitmap из MemoryStream
Этот вызов ...
System.Drawing.Bitmap myImage = System.Drawing.Image.FromStream(docStream);
Формирует эту ошибку ...
System.Runtime.InteropServices.ExternalException occurred
Message="A generic error occurred in GDI+."
Source="System.Drawing"
ErrorCode=-2147467259
StackTrace:
at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.Image.FromStream(Stream stream)
и этот вызов ...
System.Drawing.Bitmap myImage = new System.Drawing.Bitmap(docStream);
Формирует эту ошибку ...
System.ArgumentException occurred
Message="Parameter is not valid."
Source="System.Drawing"
StackTrace:
at System.Drawing.Bitmap..ctor(Stream stream)
Код работает для png, jpg и tif, но не для bmp или GIF.
Это в основном:
MemoryStream docStream = GetMemoryStream(filePath);
// The next line errors...
System.Drawing.Bitmap myImage = new System.Drawing.Bitmap(docStream);
private MemoryStream GetMemoryStream(string file)
{
FileStream fs = null;
Byte[] bytes;
int len;
fs = File.OpenRead(file);
len = (int)fs.Length - 1;
bytes = new Byte[len];
fs.Read(bytes, 0, len);
return new MemoryStream(bytes);
}
Я не закрывая MemoryStream в любом месте и, если PNG и JPG не не влияет на closed MemoryStream я не думаю, что это проблема. Когда я смотрю на файлы изображений, используя шестнадцатеричный редактор, не представляется, что encoding неверен. На всякий случай я также пробовал разные размеры файлов.
На данный момент я в значительной степени не понимаю. Любая помощь будет принята с благодарностью.
Спасибо.
Это код VB, которым я пользовался через конвертер. :(Глупо. Спасибо. –