2011-12-27 7 views
1

私は400x300のpictureboxを持っていますが、これはマウスクリックの代わりに赤い塗りつぶしの楕円を置く「mousedown」イベントを持っています。問題は私が今得た、私は配列にすべての単一のピクセルの色を取得したい。そこには3色、黒色(0,0,0 RGB)、赤色(255,0,0)、そしてwhile(255,255,255)しかありません。 質問はどうやって全体のピクチャボックスをトラフして色の値を取得できますか?私が使うことができる "getPixel"はありません。私はPictureBox描画されたイメージの色を配列

Bitmap zdjecie_box = new Bitmap(pictureBox1.Image) 

をビットマップにピクチャボックスの画像を渡してみましたが、それは画像が正しく(ヌル)空であると言うので、私はdrawed画像ありえないが、どこか.imageに保存されているが、推測します。私はそれを望んでいた、それから私はちょうどzdjecie_box.GetPixel(i, j).R;を使用して、それを配列に保存します。

どうすればいいですか?

答えて

1

独自のイメージを定義し、描画イベントで設定した場合は、簡単にアクセスできます。例えば

Bitmap _b; 
private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    _b = new Bitmap(pictureBox1.Width, pictureBox1.Height); 
    Graphics g = Graphics.FromImage(_b); 
    g.DrawEllipse(Pens.Black,new Rectangle(0,0,25,25)); 
    pictureBox1.Image = _b; 
} 
... 
private void ParseImage() 
{ 
    for (int y = 0; y < _b.Height; y++) 
    { 
     for (int x = 0; x < _b.Width; x++) 
     { 
      Color c = _b.GetPixel(x, y); 
     } 
    } 
    } 
+0

私は今あなたを愛していると思います。ありがとうございました :) – Kedor

関連する問題