我如何知道鼠标放置在pictureBox
的哪个像素(坐标)?
答案 0 :(得分:7)
抓住鼠标移动事件:
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
Text = String.Format("X: {0}; Y: {1}", e.X, e.Y);
}
你有X和Y的位置
如果您的图像已经缩放和/或平移,请记住,您必须对这些坐标应用变换
需要说明的是:如果您的图片已放置在(x0,y0)
并已使用zf
缩放(请记住,zf< 1表示缩小),像素坐标将
px = (e.X - x0) / zoom;
py = (e.Y - y0) / zoom;
答案 1 :(得分:4)
我认为这个问题有点模糊,因为你没有告诉我们你打算做什么,也没有告诉我们你有效尝试过什么。
Control.PointToClient方法似乎可以满足您的需求:
计算指定屏幕点到客户端的位置 坐标。
然后您可以使用Bitmap.GetPixel并使用X-Y坐标获取给定鼠标坐标处的像素:
获取此Bitmap中指定像素的颜色
所有这些都可以通过Mouse_Over事件,Mouse_Click等来触发
答案 2 :(得分:2)
如果您确定MouseEvent中的颜色,您可以使用MouseEventArgs提供的坐标
// Declare a Bitmap
Bitmap mybitmap;
// Load Picturebox image to bitmap
mybitmap = new Bitmap(pictureBox1.Image);
// In the mouse move event
var pixelcolor = mybitmap.GetPixel(e.X, e.Y);
// Displays R / G / B Color
pixelcolor.ToString()
答案 3 :(得分:1)
Mouse类上有一个静态方法,允许您获取鼠标指针相对于另一个元素的位置。看看Mouse.GetPosition(UIElement)。
以下是您使用它的方式。
Point point = Mouse.GetPosition(pictureBox);
Debug.WriteLine("X: " + point.X +"\n Y: "+ point.Y);