1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Reinhard

Beiträge von Reinhard

  • _GDIPlus_ImageCalcDif

    • Reinhard
    • 5. November 2025 um 12:08

    Hallo,
    mir ist ein bisschen unbehaglich dabei, hier vom ursprünglichen Thema abzuschweifen. Vielleicht hast du Nerv, das schöne Skript in einem eigenen Thema vorzustellen.
    Aber jedenfalls: Der Befehl 'Auto Farbe' im Faststone-Image-Viewer erzeugt aus einem Graustufenbild keine Farben. Es wird nach meinem Eindruck lediglich eine Tonwertspreizung ausgeführt, die dazu führt, dass die (u. U. wenigen) vorhandenen Farben über die gesamte Breite des Histogramms verteilt werden. Bei Farbbildern werden die Farbkanäle einzeln behandelt. Vielleicht werden auch noch weitere clevere Algorithmen bemüht. Unabhängig davon kann auch die Anwendung des Befehls 'Auto-Farbe' auf ein Graustufenbild verblüffen. Ich habe in die hier angehängte Datei 'ImageDiff.zip' vier Bilder gepackt:
    - Fahrrad.png (das Original)
    - Fahrrad.jpg (eine verlustarme Kompression des Originals)
    - ImageDiff.png (vom Skript im Modus '3' erzeugt)
    - ImageDiff_AutoFarbe.png
    Man sieht also schön, wie der Befehl 'Auto Farbe' die in 'ImageDiff.png' kaum wahrnehmbaren Differenzen sichtbar macht.

    Dateien

    ImageDiff.zip 2,58 MB – 133 Downloads
  • _GDIPlus_ImageCalcDif

    • Reinhard
    • 4. November 2025 um 19:05
    Zitat von UEZ

    Sorry fürs Hijacken... :whistling:

    Ist jedenfalls interessant: In der Freeware meines Vertrauens einmal Auto-Farbe über 'ImageDiff.png' laufen lassen und schon werden feinste Unterschiede sichtbar. Kommt in die Bastelkiste :)

  • _GDIPlus_ImageCalcDif

    • Reinhard
    • 3. November 2025 um 21:41

    Wenn ich die Funktion aus Post #12 in die UDF einbaue, erhalte ich korrekte Ergebnisse.
    Was ich gerade noch herausgefunden habe: Mit Autoit 3.3.14.5, das ich vermutlich unter Windows 7 genutzt habe, erhalte ich auch auf meinem Rechner korrekte Ergebnisse (mit der ursprünglichen Original-UDF).

  • _GDIPlus_ImageCalcDif

    • Reinhard
    • 3. November 2025 um 17:48

    Hallo Velted ,

    Die letzten Zeilen in Post #19 (Ach ja, mit den Befehlszeilen...) habe ich nur deshalb hinzugefügt, weil Mars in Post #12 meinte: "Ich vermute, dass du die 64Bit Version verwendest und der ASM Code ist für 32Bit zusammengesetzt worden". Ich möchte nur zeigen, dass ich dann keine falschen, sondern gar keine Werte erhalte.
    Unter Autoit 3.3.18.0 habe ich die neue UDF genutzt, also die, wo es in Zeile 47 'int' statt 'none' heißt.
    Unter Autoit 3.3.16.1 habe ich die alte UDF genutzt. Jetzt auch noch mal die neue. Ergebnis: Wie in Post #7.
    Welche Werte bekommst du denn angezeigt? Mit der modifizierten 'Test.au3' aus Post #19 ist das schnell getestet.

    Gruß

    Reinhard

  • _GDIPlus_ImageCalcDif

    • Reinhard
    • 3. November 2025 um 12:41

    Hallo,
    auch ohne die hier erörterten Details der Programmierung, die jenseits meines Horizontes liegen, ist die Sache für mich nur noch rätselhafter geworden:
    Ich habe nämlich unter Windows 11 durchaus die 32-Bit-Version von Autoit 3.3.16.1 verwendet. Um meinen Test aus Post #7 problemlos wiederholen zu können, habe ich nun die Datei 'Test.au3' aus dem UDF-Paket etwas modifiziert: Statt der Konsolen-Ausgabe erfolgt die Ausgabe der Ähnlichkeitswerte ($fDif) in Messageboxen und der Test wird dreimal nacheinander mit unterschiedlichen Varianten ausgeführt (Originaldateien, Datei 2 ist eine Kopie von Originaldatei 1, beide Dateien sind Kopien von Black_512.png).
    Für den Fall, dass es jemand ausprobieren möchte, habe ich die geänderte 'Test.au3' und die Datei 'Black_512.png' hier als 'ImageDiffMod.zip' hochgeladen. Man muss dann nur die beiden im Zip enthaltenen Dateien in das Verzeichnis kopieren, in dem sich die entpackte '_GDIPlus_ImageCalcDif.au3' befindet und kann den Test aus Post #7 wiederholen. ImageDiffMod.zip

    Um sicherzugehen, dass die 32-Bit-Version von Autoit verwendet wird, habe ich die modifierte 'Test.au3' aus dem Skriptverzeichnis heraus wie folgt aufgerufen:
    "C:\Program Files (x86)\AutoIt3\AutoIt3.exe" Test.au3
    Dabei erhalte ich die gleichen Ergebnisse wie in Post #7 und zwar unter Win 11 auf einem AMD Ryzen 5700 G.
    Da Mars jedoch (Post #12) unter AutoIt 3.3.16.1, 32Bit und vermutlich ebenfalls auf einem 64-Bit-System mit der alten UDF die von ihm erwarteten Ergebnisse erzielt hat, habe ich den Test noch auf meinem Audio-PC (Win 10-64, Intel Pentium N5000) unter Autoit 3.3.16.1 durchgeführt und wieder die Ergebnisse wie in Post #7 erhalten. Das gilt auch für die Konsolenausgabe mit der Original-'Test.au3'. Ich kann mir kaum vorstellen, dass diese beiden klaglos funktionierenden PCs irgendeine Eigentümlichkeit aufweisen, die zu falschen Ergebnissen führt (und ja, Virenscan ohne Befund, "sfc /scannow" findet keine korrupten Dateien). Auf jeden Fall wäre es schön, wenn noch ein paar Leute mehr den Test durchführen könnten.

    Zu guter Letzt habe ich noch die portable Version von Autoit 3.3.18.0 heruntergeladen und den Test damit und mit der für Autoit 3.3.18.0 angepassten '_GDIPlus_ImageCalcDif.au3' gemacht:
    D:\Temp\Autoit18\AutoIt3.exe Test.au3
    Hier gibt es folgende Ergebnisse:
    Runde 1: 158.51 , 483.32
    Runde 2: 12.9 , 663.52
    Runde 3: 17 , 445,65
    Auch hier kein Unterschied zum Win 10-Rechner.
    Ach ja, mit den Befehlszeilen
    "C:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe" Test.au3 (Autoit 3.3.16.1, alte UDF)
    D:\Temp\Autoit18\AutoIt3_x64.exe Test.au3 (Autoit 3.3.18.0, neue UDF)
    bekomme ich nicht einmal die Message-Boxen angezeigt.
    Bin ratlos :/.

    Gruß
    Reinhard

  • _GDIPlus_ImageCalcDif

    • Reinhard
    • 2. November 2025 um 13:25

    Das beruhigt mich etwas, daher hier nur zur Ergänzung:
    die Kopien habe ich auf Systemebene erstellt. D. h., Original und Kopie sind bitgenau gleich, was ich vorsorglich auch überprüft habe. Überdies habe ich bei den komplett mit RGB 0-0-0 gefüllten PNG-Dateien auch noch die Farben zählen lassen, das Ergebnis war '1'.
    Für mein drittes Beispiel habe ich beide im UDF-Paket enthaltenen Dateien ('1.png' und '2.png') durch die komplett einfarbig schwarze PNG-Datei mit 512 x 512 Pixeln ersetzt. Die dann bei der Ausführung von 'Test.au3' entstehenden Dateien 'Ausschnitt1.png' und 'Ausschnitt2.png' von jeweils 100 x 100 Pixeln sind im meinem dritten Beispiel daher auch wieder bitgenau gleich.

  • _GDIPlus_ImageCalcDif

    • Reinhard
    • 1. November 2025 um 11:52

    Nachdem ich aus diesem Forum schon manche hilfreiche Anregung bezogen habe, bin ich nun mit meinem Latein am Ende und habe mich angemeldet, um eine Frage loszuwerden, auf die ich alleine beim besten Willen keine Antwort finde. Und ich hoffe mal, dass es trotz des Alters der letzten Antwort in diesem Thread sinnvoll ist, kein neues Thema zu erstellen.

    Also: Vor ein paar Jahren, noch unter Windows 7, habe ich mal ausgiebig mit der UDF '_GDIPlus_ImageCalcDif.au3' herumgespielt und fand die Funktion famos schnell. Das damals begonnene Projekt, die Ähnlichkeit aneinandergrenzender Bildkacheln zu testen, wollte ich jetzt, unter Windows 11, mal wieder aufgreifen. Leider scheint die Funktion nun aber kein sinnvolles Ergebnis mehr zu liefern - oder ich habe ein mächtiges Brett vor dem Kopf (ist natürlich auch schon vorgekommen).

    Wenn ich unter Autoit 3.3.16.1 die mit der UDF mitgelieferte Datei 'Test.au3' unverändert ausführe, bekomme ich folgende Werte für $fDif:

    Beispiel 1: 163.63

    Beispiel 2: 660.27

    Ersetze ich die mit der UDF mitgelieferte Datei '2.png' durch eine Kopie von '1.png', so dass beide Bilder absolut identisch sind, bekomme ich folgende Werte für $fDif:

    Beispiel 1: 18.02 (sollte doch '0' sein)

    Beispiel 2: 1

    Ersetze ich '1.png' und '2.png' durch Kopien eines vollständig mit Schwarz gefüllten png-Bildes von 512 x 512 Pixeln erhalte ich:

    Beispiel 1: 23.75

    Beispiel 2: 622.6

    So wie ich es verstehe, sollte der Abweichungswert im letztgenannten Fall beide Male Null sein, da die Bilder identisch sind und sich auch die verglichenen Bereiche nicht unterscheiden.

    Bin etwas ratlos und hoffe inständig, dass ich nicht fürchterlich auf dem Schlauch stehe und etwas übersehe, das ganz offensichtlich ist.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™