Spot the difference! [Update]

Finde die 15 Fehler (Wikimedia Commons)

Spot the difference! [Update]

Ein ziemlich cooles Tool um den Überblick über verschiedene Versionen von Bildern zu behalten nennt sich compare von ImageMagick. Es verdeutlicht jeweils die Unterschiede zwischen zwei Bildern. Im Beispiel des Fehlersuchbildes kann man das gut verdeutlichen. Ohne die Hilfe von compare ist es für das menschliche Auge zwar möglich alle 15 Fehler im Bild zu finden, jedoch nur mühsam. Evtl findet man selbst nach längerem Drüberschauen nur 10-12 Fehler. Mit compare kann man jedoch wirklich alle Unterschiede sichtbar machen und darin liegt der Clou: denn das Tool zeichnet die Unterschiede im Bild farbig an.

Um so einen Vergleich mit dem Beispiel des Fehlersuchbilds zu machen, muss man die beiden Bilder natürlich vorher einzeln ausschneiden, auf dasselbe Format bringen und dann abspeichern (in meinem Fall spot_the_difference_1.png und spot_the_difference_2.png). Nachdem man ImageMagick z.B. per Software-Center installiert hat gibt man dann per Kommando-Zeile sinngemäß folgenden Befehl ein:

compare spot_the_difference_1.png spot_the_difference_2.png thats_the_difference.png

Das Ergebnis ist eine neue Bilddatei namens thats_the_difference.png, welche, mit roten Stellen markiert, die Unterschiede im Bild darstellt.

Spot the difference (ohne "Fehler")

Spot the difference (ohne “Fehler”)

Spot the difference (mit "Fehlern")

Spot the difference (mit “Fehlern”)

Von compare gefundene Unterschiede ("Fehler")

Von compare gefundene Unterschiede (“Fehler”)

Natürlich braucht man das Tool nicht primär um Unmengen von Fehlersuchbildern zu lösen um bei Preisausschreiben reich zu werden – aber wer es gern versuchen will, weiß jetzt wie es geht ;-) – sondern interessant wird es dann, wenn man z.B. in einem Projekt mit mehreren Personen zusammenarbeitet und öfter mal verschiedene Versionen von Bildern/Designs austauschen muss. Denn es kann u.U. für einen Programmierer/Designer wichtig sein minimale Änderungen am Design schnell zu erkennen, weil man die Unterschiede verbal nur schwer erklären kann oder weil man diese sonst übersehen würde.

Für die Zusammenarbeit an unserem Game-Projekt versucht mir mein Freund zusätzlich gerade das Thema Versionsverwaltung schmackhaft zu machen, da man damit im Team noch effizienter arbeiten kann. Es wird dabei immer nur die aktuellste Version einer Datei abgelegt, die früheren Versionen werden dabei vom Versionsverwaltungsprogramm archiviert. Sie sind also nicht verloren, aber müllen die Ordner nicht unnötig voll mit Dateinamen à la Version_01a_Fusszeile_neu.jpg, 2010_08_06_Layout_2b_mod.jpg, Bild_Neu_Final_V4.jpg etc :-) Wer oft mit vielen Bilddateien arbeitet wie ich, weiß wie schnell man so ein Chaos in seinem Projektordner findet.

Wir verwenden für unser Projekt git. Dies kann zwar Unterschiede zwischen Text-Dateien darstellen, aber standardmäßig leider nicht die Unterschiede zwischen Bildern. Deswegen hat mein Freund (mr-nice) ein kleines Shell Script als externes Diff-Tool (graphicsdiff) gebaut um auch im git diese Möglichkeit zu nutzen. Er verwendet dabei das oben genannte compare. Aktuell läuft das ganze leider nur per Kommando-Zeile, was es für mich noch ein wenig unkomfortabel macht :( Es gibt allerdings auch grafische Frontends für git, wie z.B. qgit, gitk, git-gui, … qgit ist dabei für Grafiker wohl am vielversprechensten, da es die Bilder der verschiedenen Versionen anzeigen kann und mein Freund versucht noch graphicsdiff in qgit einzubinden. Bis dahin muss ich mich einfach noch ein wenig an die X-Term-Fenster gewöhnen.

Um es auszuprobieren benötigt man …

Für jeden, der es gerne mal ausprobieren mag, hier die diktierte Kurzanleitung von mr-nice:

Graphicsdiff herunterladen

git clone git://github.com/mr-nice/graphicsdiff.git

In das Verzeichnis wechseln

cd graphicsdiff

Graphicsdiff als externes Diff-Tool für dieses Projekt (für alle anderen nicht) einstellen

git config diff.external $PWD/graphicsdiff.sh

In den Beispielordner wechseln

cd example

Die verschiedenen Versionen von spot_the_difference.png anzeigen lassen

git log spot_the_difference.png

Einen Vergleich zwischen den beiden Versionen von spot_the_difference.png anzeigen lassen

git diff 178a29dc0a11f6c8810b10275e9893a2ab3a78f9 0b04b60b2a307cf183763df3be72a8a11c4434c3 spot_the_difference.png

Da das eintippen/kopieren von den “Versionsnummern” ein bisschen lästig ist kann man sich z.B auch alle Änderungen an der Datei spot_the_difference.png anzeigen lassen

git log -p --ext-diff spot_the_difference.png

So sieht das ganze dann aus:

Anwendungsbeispiel

Anwendungsbeispiel

Cool wäre natürlich nun, wenn das ganze git-Feature aus dem Gimp (Inkscape, Scribus etc) heraus funktionieren würde. Ich werde versuchen mr-nice dazu zu bewegen in dieser Richtung weiter zu arbeiten :)

Bildquelle:

Wikimedia Commons User: ja:user:Muband

This file is licensed under the Creative CommonsAttribution-Share Alike 3.0 Unported license.

///////////////////////////////////////////////// UPDATE 25-08-2010 ///////////////////////////////////////////////////////

Mittlerweile klappt es auch mit dem qgit. Juhu, ich bin die Kommandozeile los!
Ein Patch und eine Anleitung für die Nutzung des qgit ist im graphicsdiff drin.

Hier noch ein Foto zur Anwendung:

qgit mit graphicsdiff

qgit mit graphicsdiff

E-Mail Benachrichtigung
Benachrichtige mich zu:
1 Kommentar
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Ulf B.
15 Jahre her

Hallo Annamaria,

gefällt mir, dass Ihr gleich die Pakete sinnvoll erweitert :-D
Übrigens finde ich eine Versionsverwaltung genial, wenn man kein Incrementelles Backup hat (mache ich zumindest Täglich mit StoreBackup, wobei Versionen bei mir über 100 Tage aufgehoben werden). Aber eine Versionsverwaltung kann ja noch mehr.

Danke an Euch (die Mitarbeiter am Patch und Dir) für diese gute Erweiterung. Werde sobald ich mal wieder mit meinen Arbeiten auf Stand bin, Versuche damit machen.

Gruß
Ulf

Nach oben