【问题标题】:C# getting pixels in picturebox with cursor? [closed]C# 用光标获取图片框中的像素? [关闭]
【发布时间】:2012-04-06 19:31:46
【问题描述】:

如何使用光标在图片框中获取像素xy

【问题讨论】:

  • 将其 Image 属性转换回位图并使用 GetPixel()。
  • 你是指鼠标指针下像素的颜色吗?

标签: c# winforms bitmap picturebox mouse-cursor


【解决方案1】:

如果要获取点击像素的颜色:

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

【讨论】:

  • 请记住:e.location 是pictureBox 中的位置,而真实图像的大小已调整为适合框但仍具有其原始大小。当询问此图像中的像素值时,您会从未缩放的图像中获取值。这(可能)不是您期望的颜色值!
【解决方案2】:

图片框无法获取像素。但它包含的图像可用于创建具有 getpixel 函数的bitmap 对象。然而,我要提一下,这不是最快的操作。如果您需要它快速,我会查看 GDI win32 函数。

【讨论】:

  • 这就是我必须这样做的方式,因为我一直在使用图形对象在图片框上绘图。我渲染完整的图像,然后使用 GetPixel(x,y);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
  • 2021-05-31
  • 2014-03-16
相关资源
最近更新 更多