Pixelfarbe aus bestimmten Bereich auslesen

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

skebi
Posts: 10
Joined: 06 Apr 2015, 16:38

Pixelfarbe aus bestimmten Bereich auslesen

26 Feb 2016, 18:16

Hallo,

Habe ein Problem und finde auch nach ewig langen Suchen keine Lösung.

Klar, so kann ich die Farbe eines bestimmten Pixels auslesen.

Code: Select all

PixelGetColor, color, 1317, 269, RGB
Wie kann ich jedoch einen bestimmten Bereich auslesen? Zum Beispiel: Sobald sich im Bereich von
1310, 260 bis 1340, 270 ein einziger Pixel (egal wieviele) Rot ist wird etwas ausgeführt.

Ich bitte um Hilfe.
Danke im Voraus.
just me
Posts: 6559
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Pixelfarbe aus bestimmten Bereich auslesen

27 Feb 2016, 02:10

Moin,

dafür gibt es keine AHK Anweisung. Du musst in einer Schleife (siehe Loop / While) alle Pixel des Bereichs einzeln abfragen, bis Du ein passendes gefunden hast.
skebi
Posts: 10
Joined: 06 Apr 2015, 16:38

Re: Pixelfarbe aus bestimmten Bereich auslesen

27 Feb 2016, 02:15

Das hab ich befürchtet... leider sehr aufwändig

Danke!
just me
Posts: 6559
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Pixelfarbe aus bestimmten Bereich auslesen

28 Feb 2016, 04:08

Siehe da, es gibt immer noch Anweisungen, die ich nie gebraucht habe und auch nie brauchen werde.

Danke für den Hinweis, nnnik.
User avatar
nnnik
Posts: 4328
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Pixelfarbe aus bestimmten Bereich auslesen

28 Feb 2016, 18:30

Ich habe letztens zum ersten mal die try catch Sache benutzt das Gefühl kenne ich nur zu gut.
Recommends AHK Studio
garry
Posts: 1903
Joined: 22 Dec 2013, 12:50

Re: Pixelfarbe aus bestimmten Bereich auslesen

29 Feb 2016, 06:16

.... es gibt immer noch Anweisungen, die ich nie gebraucht habe und auch nie brauchen werde.
... man weiss nie ... bin froh über die vielen Möglichkeiten
try catch brauche ich auch gerne ( in GWBASIC 'on error goto' , erdev ,erl, err, error , exterr , resume , tron etc .. )
User avatar
Gucky_87
Posts: 332
Joined: 03 Jul 2014, 05:09

Re: Pixelfarbe aus bestimmten Bereich auslesen

07 Apr 2016, 03:13

Huii, da kennt (noch) jemand GWBasic.
Das waren noch Zeiten, was?
Die CPU Taktgeneratoren liefen noch in zweistelligen Bereichen...
Die Speichergrößen wurden noch in MB geschrieben...X)
Die Disketten waren noch so groß, wie ein Standardbrief... :P
Die Monitore flimmerten noch in farbenfrohem schwarz/grün... XD
Und der PC machte allenfalls 'Piep' - Und das auch nur in Mono ;)
garry
Posts: 1903
Joined: 22 Dec 2013, 12:50

Re: Pixelfarbe aus bestimmten Bereich auslesen

07 Apr 2016, 12:33

betr. GWBASIC ( seit ich autohotkey kenne , fast nicht mehr benutzt , zumindest als Rechner optimal ( Eingaben lassen sich korrigieren oder benutze kleine Rechen-Programme ) )
monochrom Monitor (amber) war gut , kein Flimmern im Gegensatz zu den Farbmonitoren
mit kleinen basic Rechnern konnte man via LPT1 8 Relais ansteuern oder auch als Telefonwählautomat brauchen
32 kB , da konnte man noch Briefe ausdrucken und 4-Farbplotter ansteuern

http://www.gw-basic.com/command-reference.html

Für Windows10 64-bit DosBox oder PC-Basic :
http://www.dosbox.com/
http://robhagemans.github.io/pcbasic/
Image

Sharp PC-1262 mit USB :
Image
garry
Posts: 1903
Joined: 22 Dec 2013, 12:50

Re: Pixelfarbe aus bestimmten Bereich auslesen

07 Apr 2016, 12:49

Betr PixelGetColor/ Pixelsearch paar Beispiele

Code: Select all

;Here are two possible ways of waiting for a color onscreen:
While (color <> 0x031323)
{
  PixelGetColor, color, 801,1194
  sleep, 300
}
;This code is best if the color never varies and the location never varies.
;It will move past the loop once the color is found in the specific location.


Loop
{
  PixelSearch, x, y, 0, 0, A_ScreenWidth, A_ScreenHeight, 0x031323, 10
  if !ErrorLevel
   break
  sleep, 300
}
;This code is best if the location changes and the color has variance.
;The x and y coordinates of the color will be in variables x,y when it is found.
;Allowed variation in the color is the parameter after the color in PixelSearch.
;Note the x and y returned should be relative to the active window.
;if this is not suitable, you can use the CoordMode command to change it to be relative to the screen.

;----
;For clicking, you said you already found it but here's a method anyway:
Click down %x% %y%
Sleep, 1000                ;-hold for one second
Click up


;----
;To monitor if a certain color appears (or doesn't appear) in a spot at any time in the life of the script:
SetTimer, ColorCheck, 300          ;- the last parameter is # of milliseconds between checks
Loop
{
  ;application code here...
}
ColorCheck:
  PixelGetColor, color, x,y        ;- fill in x,y coordinates
  if (color <> 0x000000)           ;- fill in 0x...
   Reload ;start over
return
garry
Posts: 1903
Joined: 22 Dec 2013, 12:50

Re: Pixelfarbe aus bestimmten Bereich auslesen

07 Apr 2016, 14:55

Imagesearch and click

Code: Select all

;--- Example-1
#NoEnv                        ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode,Input                ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir, %A_ScriptDir%  ; Ensures a consistent starting directory.
CoordMode,Pixel,Screen
CoordMode,Mouse,Screen

ur=https://dl.dropbox.com/s/3lwenyx7hydoe69/buttonpic.png
SplitPath,ur, name, dir, ext, name_no_ext, drive
f1=%a_scriptdir%\%name%
ifnotexist,%f1%
  urldownloadtofile,%ur%,%f1%

Gui,add,picture, gA1 x10 y10 ,%f1%
gui,show, x100 y10 h70 w250 ,Use F2 to find picture
return

guiclose:
exitapp

f2::
ImageSearch,xfound,yfound,0,0,%a_screenwidth%,%a_screenheight%, *20 %f1%
if errorlevel=1
  {
  MsgBox,Error
  return
  }
else if errorlevel=2
  {
  MsgBox,Picture %name% not found
  return
  }
MouseClick,left,%xfound%,%yfound%       ;- click on picture
ToolTip,Here is the picture %name%
sleep,4000
tooltip
return

a1:
msgbox, You clicked Picture %name%
return
User avatar
Gucky_87
Posts: 332
Joined: 03 Jul 2014, 05:09

Re: Pixelfarbe aus bestimmten Bereich auslesen

14 Apr 2016, 08:25

@ gerry:
WOW, dass es die Sharp Rechner noch funktionsfähig gibt.
Ich hatte einen 1402 und der hat mir so manche Prüfung "gerettet" ;P
Mit selbst gebautem Cassetteninterface konnte ich damals via Walkman Programme
laden/speichern.
Dass es sogar ein USB Interface dafür gibt, sehe ich mit Bewunderung jetzt zum 1. Mal.
Klasse XD

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 29 guests