我正在处理一个项目,该项目需要图像中两个水平点之间的像素数量。我在Windows应用程序窗体中执行此操作。获取图像中两个点之间的像素数
基本上,当用户点击图像中的一个点,然后在其他点上,然后他应该获得像素数量的形式的水平距离。
我不明白这样做。 请帮忙。
我正在处理一个项目,该项目需要图像中两个水平点之间的像素数量。我在Windows应用程序窗体中执行此操作。获取图像中两个点之间的像素数
基本上,当用户点击图像中的一个点,然后在其他点上,然后他应该获得像素数量的形式的水平距离。
我不明白这样做。 请帮忙。
假设你的图像是使用从Control
下来的任何控制,那么你将有机会获得Control.MouseClick
事件(link)显示。
此活动使用MouseEventArgs
(link),它有一个属性X.
应该从这一点非常明确。
编辑:添加了这个非常简单的例子:
private int? x1;
private void MyImageControl_MouseClick(object sender, MouseEventArgs e)
{
if (x1.HasValue)
{
MessageBox.Show("Difference of " + Math.Abs(e.X - x1.Value).ToString());
x1 = null;
}
else
{
x1 = e.X;
}
}
这是相对于图像的像素密度?我想他不会显示1:1的关系,像素差异将是不正确的。当然,他需要图像与显示器的像素距离。 –
对于图像容器,我只是用一个图片,尽管这会与标签或控制任何你想要的工作。
以外的任何功能:
private Boolean clicked_once = false;
private Point point1;
private Point point2;
然后我添加了一个鼠标点击事件(不是Click事件):
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (clicked_once == false)
{
clicked_once = true;
point1 = e.Location;
}
else if (clicked_once == true)
{
clicked_once = false;
point2 = e.Location;
int distance = Math.Abs(point1.X - point2.X);
MessageBox.Show("Distance of pixels horizontally: " + distance.ToString());
}
}
应该工作。
你几乎没有想法?如果你不得不在你手中的照片上做这件事,你会如何处理它?考虑一下,然后写一些可以做同样的代码。 – Ste
你有哪些麻烦?获取用户点击的点数?计算这两点之间的水平距离?显示结果?人们会认为,你至少有一部分知道如何做。 –