我得到了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;
并将其保存到数组中。
任何想法如何做到这一点?
答案 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);
}
}
}