获取图像中两点之间的像素数

时间:2012-05-03 15:46:27

标签: c# winforms

我正在开发一个项目,该项目需要在图像中水平的两个点之间有多个像素。我是在Windows应用程序表单中这样做的。

基本上当用户点击图像中的一个点然后点击其他点时,他应该在像素数量上获得水平距离。

我不知道这样做。 请帮忙。

2 个答案:

答案 0 :(得分:0)

假设您的图片是使用Control下的任何控件显示的,那么您将可以访问Control.MouseClick事件(link)。

此活动使用MouseEventArgslink),其中包含属性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 :(得分:0)

对于图像容器,我只是使用了一个pictureBox,虽然这可以使用标签或你想要的任何控件。

在任何功能之外:

private Boolean clicked_once = false;
private Point point1;
private Point point2;

然后我添加了一个MouseClick事件(不是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());
    }
}

应该工作。