C#如何使用光标获取picturebox中的像素?

4

如何使用鼠标光标在图片框中获取像素点 xy 的位置?


2
将其Image属性转换为位图并使用GetPixel()。 - Hans Passant
1
你是指鼠标指针下的像素颜色吗? - Lasse V. Karlsen
2个回答

15

如果您想获取所点击像素的颜色:

Color pixelColor;

// add the mouse click event handler in designer mode or:
// myPicturebox.MouseClick += new MouseEventHandler(myPicturebox_MouseClick);
private void myPicturebox_MouseClick(object sender, MouseEventArgs e) {
   if (e.Button == MouseButtons.Left) 
      pixelColor = GetColorAt(e.Location);
}

private Color GetColorAt(Point point) {
   return ((Bitmap)myPicturebox.Image).GetPixel(point.X, point.Y);
}

2
请注意:e.location是pictureBox中的位置,而实际图像被调整大小以适应框,但仍保持其原始大小。在此图像中请求像素值时,您将从未缩放的图像中获取该值。这可能不是您期望的颜色值! - Christian Gold

5
图片框无法获取像素。但是,它包含的图像可以用来创建一个位图对象,该对象具有getpixel函数。需要指出的是,这不是最快的操作。如果需要快速处理,建议使用GDI win32函数。

这是我必须这样做的方式,因为我一直在使用图形对象在picturebox上进行绘制。我渲染完整的图片,然后使用GetPixel(x,y)函数。 - Jason James

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接