2011-12-27 72 views
1

我得到了400x300的picturebox,它有一個「mousedown」事件,它將一些紅色填充的橢圓代替鼠標點擊。我現在得到的問題,我想獲得每個像素的顏色到數組中。我只有3種顏色,黑色(RGB中的0,0,0),紅色(255,0,0)和(255,255,255)。 問題是,我如何運行槽整個圖片框並採取顏色值?沒有我可以使用的「getPixel」。我試圖通過圖片框的圖像轉換爲位圖PictureBox繪製的圖像顏色到陣列

Bitmap zdjecie_box = new Bitmap(pictureBox1.Image) 

但它說,圖像正常爲空(NULL),所以我想drawed圖像的心不是存儲在圖像配,但在其他地方。我想這樣做,因此我只會使用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 2011-12-27 17:39:42