我正在處理一個項目,該項目需要圖像中兩個水平點之間的像素數量。我在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
你有哪些麻煩?獲取用戶點擊的點數?計算這兩點之間的水平距離?顯示結果?人們會認爲,你至少有一部分知道如何做。 –