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

タイトル Re^2: 繰り返しJpeg保存時にGDI+汎用エラー
投稿日: 2015/05/24(Sun) 22:27
投稿者Kobaちゃん
>
> 未確認ですが!
> この後のコードが投稿されていませんが、bmp オブジェクトは、使い終わったら Dispose メソッドを
> 呼び出してリソースを解放しておられますか?
> リソースを解放しても同様のエラーが発生しますか?

bmp.Dispose()
で開放しています。後半にコードを投稿しています。

1.一度起きると、VBを再起動してもだめで、Windowsの再起動が必要です。
  bmp = nothingは不要と思って入れていませんが、追加してやってみます。
  
2.当初はbmpオブジェクトを直接PictureBoxに代入した後bmp.saveで保存していました。
  タスクマネージャーで確認した結果、GDI+オブジェクトが増加していっていたので、bmpオブジェクト
  の直接PictureBox代入をやめて、jpgに保存した後、保存した画像をPictureBoxにLoadするようにしま
  した。GDI+オブジェクトは増加しなくなりましたが、エラーは解消しませんでした。


<<後半のコードは以下の通りです。>>

        '保存したファイルをロードする前に確認(ファイルサイズが小さければエラー)
        Dim fs As New FileInfo(pstrLogImgDir & "\" & strBmpFile)
        For i = 1 To 100
            If fs.Length >= Val(3000) Then Exit For
            Threading.Thread.Sleep(50)
            Application.DoEvents()
        Next
        If i >= 100 Then
      '100回チェックしてもファイルサイズが3000byteより小さければ読出しエラー
            GetCamCap = "Cam Img保存失敗"
            Exit Function
        End If
        
       '保存したファイルをWeb画像表示用PictureBox(picCamImg)にロードして表示
        picCamImg.SizeMode = PictureBoxSizeMode.AutoSize
        picCamImg.Load(pstrLogImgDir & "\" & strBmpFile)

        bmp.Dispose() <- 最後にオブジェクトを開放しています
        GetCamCap = "OK"
        Exit Function  

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

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