Convert (ImageMagick) - Erstellen und bearbeiten von Bildern auf der Kommandozeile / Convert (ImageMagick) - Creating and Editing Pictures on the Commandline (DE / EN)
(English Below / Englisch unten)
ImageMagick - Erstellen und bearbeiten von Bildern auf der Kommandozeile
Für das Bearbeiten von Bildern werden gerne Programme mit graphischen Benutzerschnittstellen verwendet. (Gimp z.b)
Wenn es aber darum geht simple Abläufe zu Automatisieren bzw sich wiederholende Aufgaben immer wieder gleichartig Auszuführen damit die Ergebnisse vergleichbar bzw ähnlich sind dann kann das Verwenden des convert Programms aus dem ImageMagick Packet sinvoll sein.
1. Erstellen von 4 leeren Bildern mit farbigem Hintergrund:
convert -size 800x800 xc:white empty1.jpg
convert -size 800x800 xc:red empty2.jpg
convert -size 800x800 xc:blue empty3.jpg
convert -size 800x800 xc:green empty4.jpg
2. In jedes erstellte Bild wird mittig zentriert ein simpler Text eingefügt:
convert empty1.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'Bild 1'" bild1.jpg
convert empty2.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'Bild 2'" bild2.jpg
convert empty3.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'Bild 3'" bild3.jpg
convert empty4.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'Bild 4'" bild4.jpg
Weitere Möglichkeiten für die -gravity Option sind:
NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast
3. Aneinanderfügen von Bildern (Horizontal von Links nach Rechts)
convert bild1.jpg bild2.jpg bild3.jpg bild4.jpg +append IMG_Komplett.lr.jpg
4.Aneinanderfügen von Bildern (Vertikal von Oben nach Unten)
convert bild1.jpg bild2.jpg bild3.jpg bild4.jpg -append IMG_Komplett.ou.jpg
5. Zusammenfügen der 4 Bilder zu einem Bild mit der montage Anweisung:
montage -tile 2x2 -geometry +0+0 bild1.jpg bild2.jpg bild3.jpg bild4.jpg bild1bis4-2x2.jpg
Mit convert könnte man sowas mit einer verschachtelten Anweisung machen:
convert ( bild1.jpg bild2.jpg -append ) ( bild3.jpg bild4.jpg -append ) +append bild1bis4-conv.jpg
6. convert bietet auch rudimentäre Möglichkeiten in ein Bild zu Zeichnen:
convert -size 100x100 xc:skyblue -fill white -stroke red -strokewidth 8 -draw "translate 50,50 rotate 45 ellipse 0,0 30,20 180,0" out.jpg
convert -size 400x400 xc:skyblue -fill white -draw "translate 50,50 rotate 45 ellipse 0,0 30,20 180,0" out.jpg
Die Beispiele wurden mit:
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101
getestet.
English Version
ImageMagick - Creating and Editing Pictures on the Commandline
Programs with graphical user interfaces are often used for editing images. (Gimp e.g.)
But when it comes to automating simple processes or performing repetitive tasks in the same way over and over again so that the results are comparable or similar, then using the convert program from the ImageMagick package can make sense.
1. Creating 4 blank images with colored background:
convert -size 800x800 xc:white empty1.jpg
convert -size 800x800 xc:red empty2.jpg
convert -size 800x800 xc:blue empty3.jpg
convert -size 800x800 xc:green empty4.jpg
2. A simple text is inserted in the middle of each image created:
convert empty1.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'image 1'" image1.jpg
convert empty2.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'image 2'" image2.jpg
convert empty3.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'image 3'" image3.jpg
convert empty4.jpg -gravity Center -font Times-Bold -pointsize 72 -draw "text 0,0 'image 4'" image4.jpg
Other possibilities for the -gravity option are:
NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast
3. Stitching Images (Horizontal from Left to Right)
convert bild1.jpg bild2.jpg bild3.jpg bild4.jpg +append IMG_Komplett.lr.jpg
4. Stitching Images (Vertically from Top to Bottom)
convert bild1.jpg bild2.jpg bild3.jpg bild4.jpg -append IMG_Komplett.ou.jpg
5. Merge the 4 images into one image:
montage -tile 2x2 -geometry +0+0 bild1.jpg bild2.jpg bild3.jpg bild4.jpg bild1bis4-2x2.jpg
With convert you could do something like this with a nested statement:
convert ( bild1.jpg bild2.jpg -append ) ( bild3.jpg bild4.jpg -append ) +append bild1bis4-conv.jpg
6. convert also offers rudimentary options for drawing in an image:
convert -size 100x100 xc:skyblue -fill white -stroke red -strokewidth 8 -draw "translate 50,50 rotate 45 ellipse 0,0 30,20 180,0" out.jpg
convert -size 400x400 xc:skyblue -fill white -draw "translate 50,50 rotate 45 ellipse 0,0 30,20 180,0" out.jpg
The examples tested with:
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101