0

私は知っています、私は知っています...このような他の多くの投稿があります。探していたものが見つかりませんでした。次に進みましょう。

C#用のこのGhostScript実装を使用してPDFを画像に分割し、各画像をビットマップにロードしようとすると、次のParameter is not valid error行が表示されることがあります。

[...]new Bitmap((Image)Image.FromFile(imagePath))[...]


Image.FromFile(imagePath)正常に画像を返しますが(ビットマップを返していると思いますが)、ビットマップのコンストラクターでエラーが発生します。私は何が間違っているのですか?

PS
Image.FromFile Image(...)の結果をすばやく見ると、System.Drawing.Bitmapとして表示されるため(どちらの方法でも、キャスト、キャストなし、同じ結果が得られるため)、結果をキャストしています。

4

2 に答える 2

3

ビットマップから新しいビットマップを作成するのではなく、既に持っているビットマップへの参照をキャストするだけです。

Bitmap b = (Bitmap)Image.FromFile(imagePath);

ファイルからロードしたビットマップから新しいビットマップを作成すると、ロードしたビットマップへの参照は取得されません。そのビットマップを破棄できないため、ガベージ コレクターが終了するまで残します。それが十分に速く行われないと、メモリが不足する可能性があります。

于 2012-04-13T21:10:50.717 に答える
2

次のように、画像へのパスを受け取る Bitmap コンストラクターを使用してみてください。

var b = new Bitmap(imagePath);
于 2012-04-13T21:40:55.117 に答える