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
      Verwalter

      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.