MemoryStream を複数回使用すると問題が発生します。
例:
For Each XImage As XImage In pdfDocument.Pages(pageCount).Resources.Images
Dim imageStream As New MemoryStream()
XImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg)
' some further processing
imageStream.Close()
imageStream.Dispose()
Next
このコードは、PDF ファイルのページ上の画像を循環します。ファイルには最大 cca 500 ページ、各ページに 5 つの画像があるとします。それは何千もの反復につながります。問題は、MemoryStream が解放されず、メモリ不足の例外が発生することです。XImage は通常、約 250 kB です。
ここでは Aspose.PDF ライブラリを使用して PDF を操作しています (XImage はこのライブラリのクラスです) が、問題ではありません。新しい MemoryStream を作成し、ダミーのビットマップを保存するだけの簡単な例を作成しようとしました。それは同じ問題につながります。
また、MemoryStream ではなく FileStream を使用しようとしましたが、同じように動作します。
どんな助けでも感謝します。
ありがとう
ジリ