Bilddateien vergleichen

Startseite Foren Deutsches LiveCode-Forum Bilddateien vergleichen

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

        Hallo zusammen,
        meine App überwacht Informationen eines Windowsprogramms und entnimmt ihm zu diesem Zweck, da meines Wissens außerdem Launch- Befehl keine anderen Interaktionsmöglichkeiten per LiveCode mit Windows bestehen, in regelmäßigen Abständen Snapshots von Teilen des Bildschirms. Die korrekte Funktion meiner App erfordert, dass kein Fremdfenster diese Informationen verdeckt. Daher lautet meine Challenge: wie kann ich den Prozentsatz ermitteln, zu dem zwei Bilddateien identisch sind (Byte für Byte Vergleich?)? Wäre für jede Anregung dankbar.

        Peter

      • #27258
        Torsten
        Teilnehmer

          Hi Peter,

          versuchs mal ganz einfach mit einem Vergleich der Image-Größen (size of image x).
          Bei einem kleinen Test auf meinem Rechner stelle ich fest, dass die sizes von zwei verschiedenen Screenshots auch tatsächlich unterschiedlich sind (allerdings sogar wenn sich nur die Uhrzeit im Menü ändert :-), während zwei Screenshots hintereinander die gleiche Größe haben.

          Vielleicht musst Du da ein paar Tests machen, ab welchem Unterschied wirklich ein anderes Fenster drüber liegt.

          Happy Coding
          Torsten

        • #27278
          Peter_M
          Teilnehmer

            Danke Torsten,das ist eine gute Idee, die auch schon hatte und tatsächlich auch schon aausprobiert habe. Die Challenge ist, dass mein Programm bei Termineinträgen automatisch Snapshots vom geänderten Terminkalender ins Web senden soll, aber gleichzeitig zeitweise überlagerte Fenster mit Patientendaten auf keinen Fall dort landen dürfen. Das ist leider mit unserer Idee nicht hundertprozentig gewährleistet. Um Termineinträge sicher von überlagerten Fenstern unterscheiden zu kônnen, wäre wegen fehlender Interaktionsmöglichkeiten von Livecode mit Windows nur eine Überprüfung geeignet, zu wie viel Prozent 2 Snapshots identisch sind….

            Peter

          • #27290
            Klaus Major
            Administrator

              Hallo Peter,

              vielleicht kannst Du mit diesem VB-Script das gewünschte Fenster “nach vorne” holen und dann Snapshotten?
              http://sonsothunder.com/devres/livecode/tips/proc001.htm
              Ist einen Versuch wert!

              Gruß

              Klaus

            • #27303
              Torsten
              Teilnehmer

                Hi Peter,

                probier mal den Code hier. Der Handler misst die Farben des zuletzt erzeugten Bildes und zeigt die Anzahl der verschiedenen Farben an. Im Array sind auch die Häufigkeiten der Farben angeben, das könnte man auch benutzen. Je nachdem, wie Dein Interface mit den Patientendaten aussieht, könnte man auch schauen, ob deren Farben im Screenshot auftauchen und dann entspechend reagieren.

                Happy Coding
                Torsten

                
                on mouseUp
                   put the imageData of last image into tData
                   put the width of last image into tWidth
                   put the height of last image into tHeight
                   put tWidth * tHeight into tNumberOfPixel
                   put tNumberOfPixel * 4 into tNumberOfbytes
                   -- step through the imageData and get the RGB values of each pixel
                   repeat with i = 1 to tNumberOfbytes - 4 step 4
                      put byteToNum(byte i+1  of tData) & "," & byteToNum(byte i+2 of tData) & "," & byteToNum(byte i+3 of tData) into tRGB
                      add 1 to tArray[tRGB] -- make the RGB value the key of an array and add the frequency of that unique RGB value
                   end repeat
                   
                   put the keys of tArray into tAllRGB -- now in tAllRGB are the unique RGB values of the image as list
                   sort tAllRGB numeric by item 1 of each & item 2 of each & item 3 of each -- we sort the list
                   put the number of lines in tAllRGB into tCountColors
                   answer tCountColors && "verschiedene Farben"
                   
                end mouseUp
              • #27316
                Peter_M
                Teilnehmer

                  Hallo Klaus und Torsten,
                  vielen Dank für eure Tipps. Das Hervorholen der Terminkalenderansicht wird leider nicht klappen, da das Praxisverwaltungsprogramm bei einigen Fenstern auf deren primärer Verarbeitung besteht. Das bedeutet, dass die periodischen Snapshots meiner App teilweise diese Fenster, die Patientendaten beinhalten können, mit aufnehmen. Vielen Dank für den Tipp mit der Farbanalyse, Torsten. Da müsste sich etwas mit anfangen lassen können. Ich werde mich melden, wenn und ob meine Anstrengungen erfolgreich waren…..

                  LG
                  Peter

                • #27317
                  Peter_M
                  Teilnehmer

                    Nachtrag: leider beinhalten die verdeckenden Fenster keine besonderen Farben. Allerdings sind die einzelnen Tage der Terminkalenderansicht durch senkrechte Linien getrennt….:-). Das kann ich mir zunutze machen, indem ich einfach teste, ob diese Linien durchbrochen sind und den jeweiligen Snapshot nur freigebe, wenn dies nicht der Fall ist. Vielen Dank noch einmal für den Denkanstoß!!

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