C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 112 を表示中)
■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;
}
返信 編集キー/


管理者用

- Child Tree -