Startseite › Foren › Deutsches LiveCode-Forum › Farbe eines Pixels feststellen
Schlagwörter: color pixel
- Dieses Thema hat 5 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 5 Jahren, 8 Monaten von Torsten.
-
AutorBeiträge
-
-
April 13, 2019 um 10:04 Uhr #14065
Hi,
ich möchte die Farbe eines bestimmten Pixels (z.B. 100,100) in einem Image feststellen. Mit mousecolor kann man das machen, muss aber immer händisch arbeiten. Geht es auch per Script?
Beste Grüße
Torsten -
April 13, 2019 um 11:32 Uhr #14067
Habs gefunden, ist leider kein direkter Befehl, sondern man muss ein bisschen arbeiten:
Beispiel-Stack: http://forums.livecode.com/viewtopic.php?t=17655
Der Weg: in der imageData eines Images sind die Pixelinfos sortiert nach der Position von links oben nach rechts unten. ImageData ist eine lange Reihe von Bytes. Jedes Pixel braucht 4 Byte für seine Farbangabe, d.h. man muss immer diese Sprünge machen:
Code:
put the imageData of image "meinBild.jpg" into tData put the width of image "meinBild.jpg" into tWidth put the height of image "meinBild.jpg" into tHeight ask "put the column and row of the pixel whose RGB value you want" put item 1 of it into tColumn put item 2 of it - 1 into tRow put tWidth * tRow * 4 into tAllRows put tColumn * 4 into tTheColumns put tAllRows + tTheColumns into tByte -- for loc 1,1 it gives byte 4, see above how the 4 bytes of the pixel work -- we want byte 2 to 4 of the pixel put charToNum (char tByte - 2 of tData) into tRed -- byte put charToNum (char tByte - 1 of tData) into tGreen put charToNum (char tByte of tData) into tBlue put tRed & comma & tGreen & comma & tBlue into tWholeRGB answer "the RGB value of pixel " & tColumn & "," & tRow +1 & " is" & cr & cr & tWholeRGB
Ich mach daraus mal eine Funktion und poste den Code hier in den Strang.
Beste Grüße
Torsten -
April 13, 2019 um 13:52 Uhr #14071
Hi Torsten,
Du kannst aber doch mit -> „the screenMouseLoc“ den Cursor an die gewünschte Stelle im Bild plazieren, „the mousecolor“ ermitteln und den Cursor wieder resetten. Alles per Skript, woll?! 🙂
Gruß
Klaus
-
April 13, 2019 um 15:07 Uhr #14073
Aaah, super, geht sogar für andere Fenster 🙂
Gibt es jetzt noch einen Trick, dass er bei screenMouseLoc einen Mausklick in das Fenster (welches ein anderes Programm ist) auslöst?
Momentan mache ich das mit Cliclick (https://www.bluem.net/de/projekte/cliclick/), was auch gut funktioniert, aber wenn es direkt aus LC heraus gehen würde, wäre das umso besser.
Beste Grüße
Torsten -
April 13, 2019 um 15:25 Uhr #14075
Nein, alles ausserhalb von LC können wir nicht kontrollieren.
Obwohl Du mal „click at das_LOC_ausserhalb_von_LC“ probieren könntest, wer weiß…Am Mac geht vielleicht was mit AppleScript.
Unter Windows? Keine Ahnung. -
April 13, 2019 um 18:14 Uhr #14077
Hi Klaus,
das Klicken in fremden Fenstern geht auf dem Mac super mit Cliclick (https://www.bluem.net/de/projekte/cliclick/)
Aus Livecode heraus dann mit dem shell-Command starten:
put shell(„/usr/local/bin/cliclick c:100,100“)Schöner wäre es, wenn es direkt aus LC gehen würde, aber so funzt es auch ganz gut.
Unter Windows gibt es wohl ein Tool namens „Mouse Move“, habe ich aber nicht ausprobiert, da auch Mac-User 🙂
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.