タイトル : 繰り返しJpeg保存時にGDI+汎用エラー 投稿日 : 2015/05/23(Sat) 16:48 投稿者 : Kobaちゃん
実験のため3万回繰り返しあるurlにアクセスし、取得したWeb画像を保存するソフトを作成しています。 約13000くらいで、「GDI+ で汎用エラーが発生しました。」が必ず出て、その後、繰り返しが完了 する3万回まで継続します。どなたか、ご教授お願いしたい。ソースコードは下記のとおりです。 ※ネット上でもbmp.save実行時にGDI+エラーが出る報告が出ていますが参考にしていますがうまくい きません。 1.動作環境:Win7(IE11)+VB2008 2.大まかな処理の流れ (1)webCam(WebBrowser)にてurlにアクセスし画像を取得 (2)webCamのイメージをBitmapオブジェクトにコピー (3)Bitmapをjpeg形式で保存 <-ここでエラー発生 3.ソースコード ・ ・ Me.webCam.Navigate(strUrl) ・ ・ 'WebBrowserのサイズに合わせてBitmap生成 webCam.Width = webCam.Document.Body.ScrollRectangle.Width 'WebBrowserのウィンドウサイズ(横)をWEBページの本文サイズにあわせる webCam.Height = webCam.Document.Body.ScrollRectangle.Height 'WebBrowserのウィンドウサイズ(縦)をWEBページの本文サイズにあわせる Dim bmp As New Bitmap(webCam.Width, webCam.Height) Dim gra As Graphics = Graphics.FromImage(bmp) 'BitmapのGraphicsを取得 Dim hdc As IntPtr = gra.GetHdc 'BitmapのGraphicsのHdcを取得 Dim web As IntPtr = _ System.Runtime.InteropServices.Marshal.GetIUnknownForObject( _ webCam.ActiveXInstance) 'WebBrowser(WEBページ)のオブジェクト取得 Dim rect As Rectangle = New Rectangle(0, 0, bmp.Width, bmp.Height) OleDraw(web, pDVASPECT_CONTENT, hdc, rect) 'WebBrowser(WEBページ)のイメージをBitmapにコピー System.Runtime.InteropServices.Marshal.Release(web) 'WebBrowser(WEBページ)のオブジェクト使用終了 gra.Dispose() ' BitmapのGraphicsの使用終了 ' Bitmapをjpeg形式で保存 bmp.Save(pstrLogImgDir & "\" & strBmpFile, System.Drawing.Imaging.ImageFormat.Jpeg) ↑ ここで、エラーが発生。(必ずではなく、約13000まではエラーなしです。 一度エラーが出ると終わりまで継続します) |