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
        Administrator

          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
            Administrator

              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
                Administrator

                  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
                  Administrator

                    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.