zur Übersicht nächste Seite

imagemagick Teil2

Generell gilt bei den weißen Textstellen auf dieser Seite: Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste.


Es soll hier gezeigt werden wie das folgende dea38-14.gif entstanden ist

Zunächst öffnet man im Bildbetrachter ein ganz beliebiges Foto, setzt den Bildbetrachter auf  100%-Ansicht  und verkleinert das Fenster soweit wie möglich. Dann macht man eine Bildschirmkopie davon. Man öffnet gimp und schneidet das Fenster des Bildbetrachters aus dem Bildschirmfoto aus. Man speichert das Fenster-Bild als  br.png  ab.

Man bestimmt in gimp die Größe und Position des sichtbaren Innenfensters (das Beispielfoto unten ist später entstanden aber es geht schließlich nur um die Größe des Innenfensters):
324x241+31+51

Dann öffnet man in gimp ein Rene-Bild dea38-50.jpg

und startet mit rechteckiger Maske in der Größe 324x241 an einer Postition die dem geplanten Anfangsbild entpricht. Man kann erst einmal einen Rahmen aufziehen und dann die Pixelwerte manuell ändern. Hier ergibt sich 324x241+137+52.

Die Änderung des Ausschnittes erfolgt hier mit 6 Pixel nach links und 6 Pixel nach unten
let a=0; for i in {1..6}; do let b=137-a*6; let c=52+a*6; let a=a+1; convert dea38-50.jpg -crop 324x241+$b+$c +repage q$i.png; done
Dann werden die Ausschnittsbilder auf das Bild des Bildbetrachters gelegt
for i in q*.png; do convert br.png $i -geometry +31+51 -composite m${i%.png}.png; done
Nun hat man 6 Bilder aus denen man ein animiertes gif bauen möchte indem die Bewegung einmal vorwärts erfolgt und dann wieder rückwärts. 

Man kann sich die Situation an einem Zahlen-gif anschauen das Zahlen von 01 bis 06 anzeigt. Es hat den Namen deb6464.gif. 

Die enthaltenen Bilder kann man anzeigen durch
convert deb6464.gif +depth miff:- | montage - -tile 15x -geometry +6+6 -background black x:

Nun möchte man diese Zahlen in umgekehrter Reihenfolge aneinanderhängen. Die erste Idee ist das gif aufzurufen und die Reihenfolge umzukehren und das gif ein zweites Mal aufzurufen
convert deb6464.gif -reverse deb6464.gif +depth miff:- | montage - -tile 15x -geometry +6+6 -background black x:

Deshalb ist es besser die Bilder zu clonen die zwischen
dem zweiten Bild 02 (mit Speicher-Nummer 1) und
dem vorletzten Bild 05 (mit Speicher-Nummer -2)
liegen und davon die Reihenfolge umzukehren
convert deb6464.gif \( -clone 1--2 -reverse \) +depth miff:- | montage - -tile 15x -geometry +6+6 -background black x:

Nun möchte man die Anzeigedauer der Bilder auf 8cs setzen aber die Anzeigedauer des ersten Bildes (mit Speicher-Nummer 0) und des Bild 06 (mit Speicher-Nummer 5) auf 80cs. Dies erreicht man mit den Eingaben
\( -clone 5 -set delay 80 \) -swap 5 +delete \( -clone 0 -set delay 80 \) -swap 0 +delete.

Um Verluste durch Abspeichern in Zwischenschritten zu vermeiden wird ein Datenstrom erzeugt der dea38-14.gif in einer Zeile fertigstellt:

Ausgehend von den q*.png Bildern werden die 6 auf das Bild des Bildbetrachters br.png gelegten Ausschnittsbilder mit einer Anzeigedauer versehen und in einem Datenstrom gesammelt.

Dann wird der Datenstrom durch eine pipe | geschickt.

Dann werden Anzeigedauern vergrößert und Bilder in umgekehrter Reihenfolge angehängt so daß der Datenstrom jetzt 10 Bilder umfaßt.

Dann wird der Datenstrom wieder durch eine pipe | geschickt.

Dann erfolgt eine Optimierung wie sie auf der Seite
Debian Gnome ImageMagick GIF
beschrieben wurde
for i in q*.png; do convert br.png $i -geometry +31+51 -composite -set delay 8 -loop 0 +depth miff:- ; done | convert - \( -clone 5 -set delay 80 \) -swap 5 +delete \( -clone 0 -set delay 80 \) -swap 0 +delete \( -clone 1--2 -reverse \) +depth miff:- | convert \( - \( -clone 0--1 +append -colors 32 -write mpr:palette +delete \) -map mpr:palette \) -layers optimize dea38-14.gif
Der Computer braucht einige Sekunden um diesen Datenstrom zu bearbeiten.

zur Übersicht nächste Seite

Datenschutzerklärung
Impressum