画像 (pdf および Word ドキュメント) をメモリ ストリームから読み込んで、pdf に追加する前に操作できるようにしようとしています。ビットマップまたは GIF を読み込もうとすると、恐ろしい GDI+ エラーが発生します。
この呼び出し...
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が閉じられたMemoryStreamの影響を受けない限り、それは問題ではないと思います. Hex エディタを使用して画像ファイルを見ると、エンコーディングが間違っているようには見えません。念のため、さまざまなファイルサイズも試しました。
この時点で、私はかなり途方に暮れています。どんな助けでも大歓迎です。
ありがとう。