Autoit Poradniki

Poradnik Autoit – Imagesearch

Imagesearch jak sama nazwa wskazuje jest poleceniem szukającym odpowiedniego obrazka na ekranie.
Zajmiemy się dziś bardzo prostym UDF’em który prawdopodobnie posłuży nam do pisania botów w grach flash bo właściwie tylko do tego się nadaje…

Aby nie przeciągać – pobieramy UDF #1,#2,#3,#4 (mirrory)

W paczce umieściłem 2 wersje Imagesearch (32/64 Bit) oraz au3 z przykładowym skryptem.

ImageSearch.au3 to tylko dwie funkcje:

  • _ImageSearch szuka na całym ekranie
  • _ImageSearchArea szuka po wybranym obszarze ekranu.

Aby skorzystać z dobrodziejstw tej biblioteki potrzebujemy obrazu w formacie *.png

Składnia polecenia Imagesearch

_ImageSearch([obraz], [pozycja], $x, $y, [tolerancja])

[obraz] – wiadomo, ścieżka do obrazu który zamierzamy szukać.
[Tolerancja] – wartość od 0 do 255, dzięki tej pozycji ustawiamy tolerancję imagesearch na różnicę kolorów pomiędzy obrazkiem, a ekranem. Przydatne w przypadku szukania gif’ów.
[Pozycja] – zwracana pozycja (o ile obrazek został znaleziony) 0 – lewy górny bok obrazka, 1 – środek obrazu.

Składnia _ImageSearchArea jest bardzo zbliżona:

_ImageSearchArea([obraz], [pozycja], $x1, $y1, $x2, $y2, $x, $y, [tolerancja])

Różni się od składni opisanej powyżej jedynie oznaczeniem początku ($x1, $y1) oraz końca ($x2, $y2) wyszukiwanego obszaru. W trakcie pisania skryptów,w których prędkość wyszukiwania jest istotna zalecam korzystanie z _ImageSearchArea aby zawężać obszar wyszukiwania, kiedy tylko się da.

Uwaga !

1) Biblioteka nie porównuje skalowanych obrazów tj. aby skrypt działał na mniejszej/większej rozdzielczości musicie przygotować odpowiednie wielkości obrazów. Mój sposób na obejście tego problemu jest następujący:

Przygotujcie sobie odpowiednie wielkości *png i wrzucicie je do folderów nazwanych jak rozdzielczości ekranu, do których są dostosowane np.

/1024x764/
/720x1280/
/1080x1920/

Wykorzystamy teraz dwa makra (o których będzie następny poradnik) @DesktopHeight zwracające wysokość okna oraz @DesktopWidth zwracający jego szerokość.

_ImageSearch(@DesktopHeight&'x'&@DesktopWidth'\obrazek.png', 0, $x, $y, 0))

W ten sposób imagesearch będzie zawsze szukał w odpowiedniej dla ekranu rozdzielczości.

2) Wersja 64 bitowa nie będzie współgrała z 32 bitowym kompilatorem i vice versa

Jak wspomniałem na samym początku, imagesearch jest dość ograniczonym UDF-em i nie zalecam z niego korzystać dopóki naprawdę nie mamy innego wyjścia.

Wpisy, które mogą Ciebie zainteresować:

Dobra alternatywa dla zalukaj.tv – Popcorn Time

Kabson

Uaktywniamy pasek wyszukiwania z Windows 8 w Windows 10

Kabson

Przenosimy cache Chrome do ramdysku

Kabson

19 przydatnych programów dla systemu Windows

Kabson

Instalujemy system Windows bez nośnika DVD bądź USB

Kabson

Zmieniamy wygląd kursora na El Capitan z Mac OS X

Kabson

14

avatar
5 Comment threads
9 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
KabsonTheGuru Recent comment authors

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

  Subksrybuj  
najnowszy najstarszy oceniany
Powiadom o
TheGuru
Gość
TheGuru

Dzięki ale …
mam obrazek w png z ,przeźroczystym tłem, (i wersję w bmp) ale _ImageSearchArea zatrzymuje szukanie (albo bardzo długo szuka).

dzielę ekran na kwadraty 40×40 i wyszukuję obrazki 29×29. nawet wpisując ręcznie zakres w którym na pewno jest obrazek skrypt go nie znajduje.

skrypt, bibliotekę i obrazki mam w jednym katalogu ale nawet jak wpiszę nazwę nieistniejącego obrazka to skrypt rusza bez błędu.

co robię źle ?

W celu świadczenia usług na najwyższym poziomie strona http://variatkowo.pl używa Cookies. Korzystając ze strony wyrażasz zgodę na ich używanie zgodnie z polityką plików cookies. Ok, rozumiem Czytaj więcej