tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 繰り返し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まではエラーなしです。 一度エラーが出ると終わりまで継続します)

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。