|
分類:[.NET 全般]
以下のコードではフォームに貼り付けた Pb(PictureBox)に画像が読み込まれていないと例外が発生します。 private void BtnTranslation_Click(object sender, EventArgs e) { Bitmap canvas = new Bitmap(Pb.Width, Pb.Height); Graphics g = Graphics.FromImage(canvas); Image img = Pb.Image; g.TranslateTransform(120, 0);//ワールド変換行列を右に平行移動する g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height)); g.Dispose(); img.Dispose(); Pb.Image = canvas; }
そこでネット上の例外処理を見て例外処理にチャレンジしているのですが、なかなかうまくいきません。以下のコードではコンパイルエラーになります。適切な方法を教えていただけたら幸いです。
private void BtnTranslation_Click(object sender, EventArgs e) { Bitmap canvas = new Bitmap(Pb.Width, Pb.Height); Graphics g = Graphics.FromImage(canvas); Image img;
try { img = Pb.Image; g.TranslateTransform(120, 0); g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height)); } catch (Exception err) { MessageBox.Show(err.Message); } finally { g.Dispose(); //これは OK なのに img.Dispose(); //現在のコンテキストに img という名前は存在しないコンパイルエラーが出る! Pb.Image = canvas; } }
|