-
Автор темы
- #1
Всем привет, скрипт не отличается от оригинального ImageSearch, только более удобен в использовании.
Пример использования
Минус, только может не правильно прочитать заголовок байтов изображения для получения ширины и высоты, т.к. проверял только на png и bmp.
Ну я думаю сами сможете отредактировать под себя :)
Теперь не нужно проверять через ErrorLevel нашёл ли он изображение, т.к. теперь функция в bool.
Можно центровать координаты по размеру картинки которую ищите. (Можно также добавить, конечные координаты изображения)
Можно центровать координаты по размеру картинки которую ищите. (Можно также добавить, конечные координаты изображения)
Код:
getScaleImage(ByRef outWidth, ByRef outHeight, szFile) {
hFile := FileOpen(szFile, 0x100)
if IsObject(hFile) {
hFile.Seek(16) ; 15 bmp, 16 png
outWidth := DllCall("Ws2_32\ntohl", UInt, hFile.ReadUInt(), UInt)
outHeight := DllCall("Ws2_32\ntohl", UInt, hFile.ReadUInt(), UInt)
hFile.Close()
return True
}
outWidth := 0, outHeight := 0
return False
}
bImageSearch(ByRef outX, ByRef outY, left, top, right, bottom, szFile, tolerance := "0", ignoreclr := "000000", center := False) {
ImageSearch, outX, outY, left, top, right, bottom, *%tolerance% *Trans%ignoreclr% %szFile%
if (!ErrorLevel) {
if (Width, Height, getScaleImage(Width, Height, szFile)) {
outX += center ? Round(Width / 2) : 0
outY += center ? Round(Height / 2) : 0
}
return True
}
outX := 0, outY := 0
return False
}
Код:
L::
if (Xpos, Ypos, bImageSearch(Xpos, Ypos, 0, 0, A_ScreenWidth, A_ScreenHeight, "1.png", "30", "000000", true)) {
MouseMove, Xpos, Ypos, 15
MsgBox Координата изображения: x = %Xpos%, y = %Ypos%
}
return
Ну я думаю сами сможете отредактировать под себя :)
Пожалуйста, авторизуйтесь для просмотра ссылки.
Последнее редактирование: