この関数を複数回呼び出すと、try ブロックのいずれかがエラーをスローし続けます。これは、特に繰り返し呼び出す場合にランダムに発生します。
//CameraCanvas: Class bitmap variable
//Canvas: Class bitmap imported through open file dialog
public void UpdateCamera()
{
try
{
CameraCanvas = new Bitmap(CameraWidthHeight.X, CameraWidthHeight.Y, PixelFormat.Format32bppArgb);
}
catch(Exception ex)
{
throw ex;
}
Graphics g = Graphics.FromImage(CameraCanvas);
g.InterpolationMode = InterpolationMode.NearestNeighbor;
//Draw it
Bitmap drawImage = Canvas;
g.DrawImage(drawImage, new PointF(0f,0f));
try
{
CameraCanvas = new Bitmap(CameraWidthHeight.X, CameraWidthHeight.Y, g);
}
catch(Exception ex)
{
throw ex;
}
g.Dispose();
}
私は非常に多くのことを試しましたが、どれも機能しません。どのコードにもストリームなどは含まれていません。以下は、フォーム コンストラクターの [ファイルを開く] ダイアログを介して Canvas をビットマップとしてインポートするためのコードです。
Bitmap source;
try
{
OpenFileDialog of = new OpenFileDialog();
if(of.ShowDialog() == DialogResult.OK)
{
source = new Bitmap(of.FileName);
Canvas = source;
this.TopLevel = true;
}
}
catch(Exception ex)
{
throw ex;
}