mouseColor, Alle Farben eines bildschirmausschnitt ermitteln

Startseite Foren Deutsches LiveCode-Forum mouseColor, Alle Farben eines bildschirmausschnitt ermitteln

Ansicht von 6 Antwort-Themen
  • Autor
    Beiträge
    • #24776
      Peter_M
      Teilnehmer

      Hallo zusammen,
      Ich habe ein Riesenproblem mit dem Befehl mouseColor, der essentiell für meine App ist. Die Aufgabe besteht darin, den Stack auf einer ganz bestimmten Stelle des Bildschirms Nähe ref_x,ref_y zu positionieren und diese Positionierung mit dem mouseColor-Befehl zu verifizieren, indem der Nahbereich um die aktuell gewählte Position mit dem mouseColor-Befehl auf die Existenz einer Pilotfarbe (z.B. rot) abgetastet wird. Hierzu habe ich folgende Codeschleife geschrieben, die einen Bildschirmausschnitt von 5 x 5 Pixeln abtastet.
      `put 0 into h
      put empty into farben
      repeat until h=25
      put ref_x + h Mod 5 into ref_x
      put ref_y + trunc ((h+ 1)/5) into ref_y
      set the screenMouseLoc to ref_x, ref_y
      put the mouseColor& “ “ after farben
      put h +1 into h
      end repeat
      answer farben

      Leider liefert mir dieser Code nur sporadisch Farbwerte, das heißt, etwa 23 der 25 Werte lauten 0, 0, 0. Habe ich einen Fehler im Code oder ist der mouseColor-Befehl fehlerhaft? Gibt es vielleicht eine Alternative? Ich habe bereits alle möglichen Varianten auch mit wait-Befehlen durchprobiert, komme aber zu keinem Ergebnis. Wäre für jede Idee zu meinem Problem sehr dankbar eurerseits sehr dankbar!
      Peter

    • #24780
      Klaus Major
      Verwalter

      Hi Peter,

      hm, ich habe Dein (exaktes) Skript mal ausprobiert und läuft wie gewünscht!?

      Ich habe ein Bild im Hintergrund geöffnet und mir eine Stelle rausgesucht.
      Ob die Farben genau stimmen, habe ich nicht überprüft, aber kein 0,0,0 dabei,
      was korrekt ist.

      Mein Ergebnis mit 222 = ref_x, 333 = ref_y:
      ——————————————–
      0,67,102
      0,68,103
      1,105,132
      20,119,148
      46,82,100
      21,54,71
      176,182,194
      55,29,28
      98,78,77
      178,150,128
      187,131,110
      187,140,114
      175,137,114
      184,139,120
      169,121,106
      175,128,108
      184,142,120
      183,141,119
      139,146,154
      156,138,134
      189,151,128
      202,166,144
      178,143,124
      169,135,119
      121,85,73

    • #24876
      Peter_M
      Teilnehmer

      Hallo Klaus, zunächst einmal vielen Dank, dass du meine Prozedur überprüft hast. Ich war auch der Meinung, dass sie so funktionieren müsste. Da er bei dir funktioniert hat, dachte ich, dass es am Betriebssystem liegen müsste! Es hat sich aber herausgestellt, dass auf einem zweiten, schnelleren Windows-Rechner die Prozedur fehlerfrei läuft. Dieser läuft allerdings genauso mit Windows 10 64-bit…… Möglicherweise macht es einen Unterschied, ob die Prozedur wie bei mir in der Praxis von einem Splashstack nachgeladen wird oder zuhause direkt in der Entwicklungsumgebung getestet wird…..
      Peter

    • #24877
      Klaus Major
      Verwalter

      Hallo Peter,

      das ist durchaus möglich.
      Tja, Softwareentwicklung, eins der letzten großen Abenteuer der Menschheit. 😎

      Gruß

      Klaus

    • #24879
      Peter_M
      Teilnehmer

      So ist es!
      (Einfach kann Jeder….)

    • #24909
      Klaus Major
      Verwalter

      Idee:
      Einfach einen Screenshot des zu untersuchenden Monitorabschnittes importieren
      und die Mausfarbe innerhalb von LC eruieren.

      Wer weiß, vielleicht klappt das ja besser, Versuch macht kluch! 🙂

    • #24911
      Klaus Major
      Verwalter

      Oder besser, einen Screenshot des 5*5 Pixel Bereichs erstellen und davon
      „the imagedata“ auswerten!Sollte wesentlich akkurater als „mousecolor“ sein.

      Hier ein Beitrag dazu vom letzten Jahr von Torsten:
      https://www.livecode-blog.de/forums/topic/farbe-eines-pixels-feststellen/

Ansicht von 6 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.