PictureBox将图像颜色绘制为数组

时间:2011-12-27 16:08:34

标签: c# visual-studio visual-studio-2010 drawing picturebox

我得到了400x300的图片框,其中有一个“mousedown”事件,它将一些红色填充的椭圆代替鼠标点击。我现在遇到的问题,我希望将每个像素的颜色变成数组。那里我只有3种颜色,黑色(RGB中为0,0,0),红色(255,0,0)和(255,255,255)。 问题是,我如何通过整个图片框和TAKE颜色值运行?没有“getPixel”我可以使用。我尝试将pictureBox的图像传递给位图

Bitmap zdjecie_box = new Bitmap(pictureBox1.Image)

但它说正确的图像是空的(null),所以我猜绘制的图像不存储在.image中,而是存储在其他地方。我想要那个,因为我会使用zdjecie_box.GetPixel(i, j).R;并将其保存到数组中。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您定义自己的图像并在绘图事件中设置它,则可以轻松访问它。 e.g。

 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);
       }
     }
  }