Ich schätze das Bild von Bob Marley, dass sich aus Hunderten kleinen Bildern zusammen setzt, kennt mittlerweile jeder. (
Link zu Flickr).
Möchte man sowas selber mal ausprobieren, dann kann man dazu
metapixel von Mark Probst verwenden. Damit das einigermaßen gut funktioniert, sollte man ein hinreichend großes Archive besitzen. Mit einigen Hundert Bildern wird das aber nicht unbedingt erfolgreich funktionieren.
Zunächst muß man sein Bilderarchiv indizieren lassen. Dafür bietet sich das Script metapixel-prepare an. Es durchsucht den angegebenen Ordner nach jpg, png und gif Dateien und speichert diese als Minibilder (Thumbnails) an einem angegeben Ort ab und speichert zusätzlich Metainformationen über jedes Bild in der Datei tables.mxt
~$ metapixel-prepare -r --width=60 --height=60 /mnt/Bilder /mnt/temp/mosaik
Damit werden alle Bilder aus /mnt/Bilder analysiert und im Format 60x60 unter /mnt/temp/mosaik abgespeichert. Das kann eine ganze Weile dauern. Mit meinem lokalen Fotoarchiv hat das eine gute halbe Stunde gedauert um 6800 Bilder zu analysieren. Ich habe mit Absicht die Minibilder kleiner gemacht, damit nachher mehr von diesen kleinen Bildern zu einem großen Bild zusammengefügt werden können. Der Default sind 128 mal 128 Pixel. Wenn das resultierende Bild gedruckt werden soll, mag diese Auflösung gut sein, mir persönlich waren die Ergebnisse am Monitor in dieser Größe jedenfalls noch zu grob.
Als Beispiel Bild hab ich folgendes ausgesucht:
Damit das Mosaikbild später noch besser wirkt, habe ich es nochmal kräftig hochskaliert auf 4500 mal 6000 Pixel.
Nun kann es losgehen. Man gibt metapixel das Ausgangsbild vor und es versucht daraus ein Mosaikbild zu erstellen.
~$ metapixel --library /mnt/temp/mosaik --metapixel /mnt/Bilder/Moewe.jpg /mnt/temp/moewe.png
Damit wird ein normales Mosaikbild aus /mnt/Bilder/Moewe.jpg erstellt mithilfe aller Minibilder, die in /mnt/temp/mosaik erfasst wurden. Das Ergebnis sieht folgendermaßen aus:
Wenn das Ergebnis noch nicht zufriedenstellend ist, kann man mit den verschiedenen Optionen von metapixel noch einiges rausholen.
Zunächst kann man anstelle eines Mosaiks eine Collage erstellen. Dabei dürfen sich die Minibilder überlagern.
Das funktioniert so:
~$ metapixel --collage --library /mnt/temp/mosaik
--metapixel /mnt/Bilder/Moewe.jpg /mnt/temp/moewe_collage.png
Dabei kommt dann sowas raus:
Wenn das immer noch nicht zufriedenstellend ist, kann man auch schummeln und das orginal Bild überlagern lassen. Passenderweise heißt die Option auch gleich --cheat In dem folgenden Beispiel wurde das Orginalbild mit 80% überlagert.
~$ metapixel --cheat 80 --library /mnt/temp/mosaik --metapixel /mnt/Bilder/Moewe.jpg /mnt/temp/moewe_cheat80.png
Mit der Option --antimosaic kann man auch ein normales Mosaik aus dem Bild erzeugen:
~$ metapixel --antimosaic /mnt/Bilder/moewe.jpg -f 2
--metapixel /mnt/Bilder/moewe.jpg /mnt/temp/anti_moewe.png
Achtung die Option --library darf hier (entgegen der Angabe der Dokumentation) nicht angegeben werden. Mit der Option -f 2 wird festgelegt, dass zwischen 2 gleichen Minibildern mindestens 2 andere liegen müssen.
Das Ergebnis sieht dann so aus:
Wenn man verhindern will, dass Minibilder doppelt verwendet werden, kann man die Option --search=global verwenden. Damit darf jedes Bild maximal einmal im Mosaik vorkommen. Der Autor warnt aber vor der Verwendung der entsprechenden Option, da diese das System deutlich stärker belastet. Bei mir brach metapixel auch mit einem Fehler ab, als ich diese Option benutzen wollte.
Das ist echt ein super Programm. Ich bin begeistert. Der einzige Nachteil ist, dass man ein sehr großes Bilderarchiv benötigt, um richtig schöne Mosaikbilder zu genererieren.