2011-12-27 28 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