JpgInfo

Gestelltes Problem
Angenommen, man hat ca. 10.000 Jpeg-Dateien unter denen sich viele Doppelte befinden. Diese Dubletten können sich in der Bildgrösse, in den Bildproportionen, der Helligkeit und auch der Farbverteilung unterscheiden.

Algorithmus
Das einfachste ist ein Vergleich der Dateigrössen. Damit hab’ ich viele Dubletten gefunden, aber natürlich meine Anforderungen noch nicht erfüllen können. Die eine Hälfte des Algorithmus ist dadurch aber schon entstanden und zwar ist das eine Sortierung und eine anschliessende Anzeige von Dateien mit gleichem “Kennwert”, zunächst eben der Dateigrösse. Ich habe mir den Quelltext für das Einlesen von Jpeg-Dateien von der “Independent JPEG Group” downgeloaded (wenn jemand mal erschreckend guten Quelltext sehen will, da ist er richtig) und somit Zugriff auf die Bilddaten. Zur Einbeziehung des Bildinhaltes werden die Jpeg-Dateien auf eine wahnsinnig schlechte Auflösung heruntergerechnet (8×8 Pixel). Dann werden sie in schwarz-weiss konvertiert, wobei ein Punkt dann schwarz ist, wenn er dunkler ist als die Durchschnittshelligkeit des Originalbildes, ansonsten weiss. Es ergibt sich also eine 64bit-Ganzzahl und nach diesem Wert werden die Bilder sortiert und dann Dateien mit gleichem Kennwert angezeigt. Dann kann der Anwender sich beide Versionen angucken und entscheiden ob die Bilder wirklich identisch sind.

Screenshot:

Leave a Reply

Your email address will not be published. Required fields are marked *