比较2个图像,得到它们之间的差异坐标

时间:2014-07-16 01:43:49

标签: image scripting autoit

为了解决我使用AutoIt的问题,我需要比较Windows系统UI的2个图像。

它们唯一的区别是一个不同颜色的矩形,因为文本将突出显示。我需要知道该矩形的位置(X和Y,以像素为单位),以指示脚本在那里点击。

任何可以告诉我坐标的软件,与屏幕的分辨率相同,所以我可以点击它?

3 个答案:

答案 0 :(得分:1)

如果你正在使用autoit,请制作一个像这样的小脚本:

#include <misc.au3>

HotKeySet("{Esc}","fin")
local $pos

func fin()
   Exit
EndFunc

While 1
   _GetPos()
WEnd


func _GetPos()
   $pos=MouseGetPos()
    If _ispressed("7B") Then
      SplashTextOn("MousePos", "X[" &  $Pos[0] & "]"& " - Y[" & $Pos[1] & "]",200,50)
      sleep(5000)
      SplashOff()
      EndIf
   Sleep(60)
EndFunc

运行它,当你按下F12时,它将为你提供5个秒的鼠标光标位置。

Esc退出

答案 1 :(得分:0)

您可以按打印屏幕按钮获取剪贴板中窗口的图像。然后,将结果粘贴到“画笔”窗口中。左下角应该在Paint窗口中显示x / y坐标。您可能需要单击视图:状态栏。

答案 2 :(得分:0)

您需要的是ImageSearch UDF

here下载DLL。

使用示例:

#include <ImageSearch.au3>

$x1=0
$y1=0

HotKeySet( "+s", "Start" )
HotKeySet( "+e", "end" )

While 1
   Sleep (100)
WEnd

Func Start()
   While 1
      $result = _ImageSearch("recycle2.bmp",1,$x1,$y1,0)
      if $result=1 Then
         MouseMove($x1,$y1,3)
         MsgBox(0,"Found","Found a empty recycle bin here...")
      EndIf
   WEnd
EndFunc

Func End()
   Exit
EndFunc