
c#で、
・カメラから画像を取得しpictureBox1にライブ表示
・ボタンをクリックすると(checkBox1がTrueになると)その時の画像を保存する
というアプリを作ろうとしています。
ライブ表示はできるのですが、画像保存しようとすると_bmp.Saveの所で
"GDI+ で汎用エラーが発生しました。"というエラーが発生します。
エラー文で調べてみると、保存するbitmapを別のbitmap(_bmp)にコピーするとエラー回避できるとの情報があり試してみたのですがダメでした。
対処法をご存じの方がいましたら教えていただけませんでしょうか。
C#
1private void CameraImageEvent1(IGrabResult grabResult) 2{ 3 Bitmap bmp = GrabResultToBmp(grabResult); 4 // 画面更新 5 if (pictureBox1.IsDisposed) return; 6 if (pictureBox1.InvokeRequired) 7 { 8 pictureBox1.Invoke((MethodInvoker)(delegate 9 { 10 Bitmap old = pictureBox1.Image as Bitmap; 11 pictureBox1.Image = bmp; 12 if (old != null) 13 old.Dispose(); 14 })); 15 } 16 else 17 { 18 Bitmap old = pictureBox1.Image as Bitmap; 19 pictureBox1.Image = bmp; 20 if (old != null) 21 old.Dispose(); 22 } 23 24 // 画像保存 25 if (checkBox1.Checked) 26 { 27 if (checkBox1.InvokeRequired) 28 { 29 checkBox1.Invoke((MethodInvoker)(delegate 30 { 31 checkBox1.Checked = false; 32 })); 33 } 34 else 35 { 36 checkBox1.Checked = false; 37 } 38 39 pictureBox1.Invoke((MethodInvoker)(delegate 40 { 41 Bitmap _bmp = pictureBox1.Image as Bitmap; 42 pictureBox1.Image = bmp; 43 _bmp.Save(SavePath, ImageFormat.Bmp); 44 if (_bmp != null) 45 _bmp.Dispose(); 46 })); 47 } 48}


回答1件
あなたの回答
tips
プレビュー