■66646 / ) |
1つのオブジェクトを2つのイベントで使用する方法 |
□投稿者/ mako_chan3 (7回)-(2013/05/13(Mon) 14:34:26)
|
分類:[C#]
お世話になります。 環境はVisual Studio2010です。
button_Click1で生成したBitmap bmpオブジェクトをbutton2_Clickイベントでも使用したいと考えています。 そのまま記述すると「名前’bmp’は現在のコンテキスト内に存在しません」のエラーが表示されます。 たしかにスコープとしては別エリアになるのでこのエラーもわかる気がしますが・・・ どのようにすれば別イベントの中でも使用できるのでしょうか。
問題の「bmp」はコードの●→の部分です。
private void button1_Click(object sender, EventArgs e) { (省略) if (openFileDialog1.ShowDialog() == DialogResult.OK) { Bitmap bmp = new Bitmap(openFileDialog1.FileName); //Bitmapクラスのbmpインスタンスを作成 pictureBox1.Image = bmp; } }
private void button2_Click(object sender, EventArgs e) { const int GMAX = 255; //画像色の最大濃度値です。 int i, j; //画像中のピクセル位置を表す変数の定義です。 int rr, gg, bb; //RGBの各輝度値です。 Color col; //カラークラスのフィールドを定義します。
int nx, ny; //画像の横(x)、縦(y)の長さを格納する変数です。
●→nx = bmp.Width; ●→ny = bmp.Height;
for(j = 0; j < ny; j++) for (i = 0; i < nx; i++) { ●→col = bmp.GetPixel(i, j); rr = GMAX - rr; //R色の輝度反転 gg = GMAX - gg; //G色の輝度反転 bb = GMAX - bb; //G色の輝度反転 ●→bmp.SetPxel(i, j, Color.FromArgb(rr, gg, bb)); //画像に輝度反転画像を入れ直す }
●→pictureBox2.Image = bmp; }
|
|