Imagemagick

http://www.imagemagick.org/script/command-line-options.php

Nützliche Hinweise

PDF-Dokument


Wichtig bei Verwendung von Crop:

z.B. -crop 100×100 bescheidet das Bild, aber:

Der Rest wird in Unterlayern abgelegt ([0] [1] etc.). Am Ende hat greift man dann meist auf das [0] zurück (darin liegt der Rest). Um das zu Unterbinden, verwende man:

-crop 100×100+0+0

Probleme Umstieg 6.0.x -> 6.2.x

Problem: Die default-Eigenschaften von 'composite' haben sich geändert (Version: 6.0.2 → 6.2.4)

In die meisten Skripte muss ich hinzufügen: composite: -compose over -matte (genaugenommen gibt es jetzt 2 over: over-dst (default) und over-src)

Ausserdem ist die neuere Version ziemlich pingelig mit den Ebenen. Ich verwende intern immer das MIFF-Format.

Dabei wird das oft aus mehreren Bildern zusammengesetzt. Im Miff sind dann alle Ebenen einzeln gespeichert und beim Konverieren in andere Formate wird dann nur die oberste (?) Ebene genommen.

Lösung: Beim Erstellen der Miffs die Ebenen verwerfen. z.B. convert Bild1.jpg Bild2.jpg -flatten +repage temp.miff (also Bild abflachen!)

ODER: Bei der Weiterberechnung explizit die Ebene wählen: z.B. convert ergebnis.miff[0] ergebnis.jpg

Zeilenumbrüche:

Seit Version 6.2.4 funktionieren Zeilenumbruech (\n) innerhalb von -draw nicht mehr.

Stattdessen -annotate verwenden!

http://www.imagemagick.org/Usage/draw/#special

Also statt: -draw „text 19,320 'ich bin \nhier'“ –> -annotate +19+320 „ich bin \nhier“ (um \n in php zu erzeugen nach wie vor: \\\\n).

-annotate x-rotatexy-rotate{+-}x{+-}y text

This is a convenience option for annotating your image with text. For more precise control over your text annotations, use -draw.

X-rotate and Y-rotate give the angle of the text and x and y are offsets that give the location of the text relative to the upper left corner of the image.

tmpformat="miff"
addition="-depth 8 -define quantum:format=floating-point" ( +repage : siehe weiter unten)

Hallo, kann mir jemand sagen ob ich die beiden ImageMagick-Variablen „MAGICK_TMPDIR“ und „TMPDIR“ für mich local setzen kann? Oder ob die nur für den gesamten Server gesetzt werden können?

# Problem gelöst, vielleicht kanns jemand auch noch gebrauchen:

Durch temporäres setzen der Umgebungsvariablen für mein Skript lässt sich jetzt der Ordner genau angeben, der für die Umrechnung der Bilder durch ImageMagick verwendet wird.

 <? 
 putenv("MAGICK_TMPDIR=/beliebigesVerzeichnis/tmp"); 
 putenv("TMP=/beliebigesVerzeichnis/tmp"); 
 putenv("TMPDIR=/beliebigesVerzeichnis/tmp"); 
 ?>

Bei set-02040206 ist alles korrigiert…. (-composite jetzt bei convert nötig !!!)

Alpha-Kanal-Maske über bestehendes Bild kopieren:

composite -compose src-over -geometry +0+0 -quality 86 Maske.jpg Bild.jpg ergebnis.jpg

Überflüssig:

-matte -channel Alpha -type TrueColorMatte

-crop macht zwar, was es soll, verwirft aber die 'Reste' nicht (sondern speichert sie als neue Ebenen, wenn möglich, z.B. bei MIFF).

Wichtig: Bei -crop müssen die Parameter +0+0 unbedingt angegeben werden! (sonst verschiebt er den Bildausschnitt nur!)

Lösung +repage Löscht alle Informationen über die Grösse. (remove/reset the virtual canvas meta-data from the images.)

Auch keine Lösung: -extract width (funzt aber auch nicht so, wie es früher mal war) -extract widthxheightgetrennte_befehle..._tag_imagemagick_im_convert_identify_composite

File Handling

PSD

Photoshop-Datei mit Ebenen erzeugen:

convert \( -page +0+0 -label "optional_label" 0006.jpg[0] -background none -mosaic -set colorspace RGB \) 
\( -page +0+0 -compose darken -label "optional_label2" 0007.jpg[0] -background none -mosaic -set colorspace RGB \) 
\( -clone 0--1 -background none -mosaic \) 
-alpha Off -reverse -compress JPEG "out.psd"

Breite der zu rechnenden Schrift berechnen

Quelle1)

I need to calculate the length when rendered of a lot of strings using a custom font.

Can you use label: and let ImageMagick calculate the width needed for you?

convert -font "Arial" -pointsize 64 label:"this is the text" out.png
identify out.png
out.png PNG 396x73 396x73+0+0 8-bit sRGB 256c 2.57KB 0.000u 0:00.000

or, more simply:

convert -font "Arial" -pointsize 64 label:"this is the text" -format %w info:
396

or, as Eric suggested:

convert -font "Arial" -pointsize 64 label:"this is the text" -format %w +identify result.png
396

Or, if you want to use annotate, you can make a larger canvas and trim it, like this:

convert -gravity west xc:white[1000x1000] -font "arial" -pointsize 32 -annotate 0 "this is the text" -trim -format %w info:
197
 
Nach oben
imagemagick.txt · Zuletzt geändert: 2024/02/29 13:36 von 127.0.0.1
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp