ImageMagick mehrere Operationen in einem Aufruf
Ich versuche, ImageMagick dazu zu bringen, mehrere Vorgänge (in diesem Fall Ausschnitte) in einem einzigen Aufruf auszuführen, aber dies scheint nicht möglich zu sein. Zum Beispiel kann ich ein Bild zuschneiden, drehen und dann ein anderes als zwei separate Befehle zuschneiden:
$ convert test.jpg -crop 223x187+588+757 -rotate 330 crop2.jpg
$ convert crop2.jpg -crop 200x100+43+87 crop3.jpg
Aber wenn ich versuche, sie zu einem einzigen Befehl zu kombinieren, erhalte ich eine Fehlermeldung:
$ convert test.jpg -crop 223x187 + 588 + 757 -rotate 330 -crop 200x100 + 43 + 87 crop3.jpg convert: Geometrie enthält kein Bild `test.jpg '@ warning / transform.c / CropImage / 666.
Offensichtlich könnte ich nur eine Pipe erstellen, aber wenn möglich möchte ich den zusätzlichen Aufwand mehrerer Prozesse vermeiden. Gibt es eine Möglichkeit, dies zu tun?
Update: Auch eine Pipe scheint problematisch zu sein: Ich möchte keine zusätzliche Komprimierungs- / Dekomprimierungsstufe, also versuche ich, sie als RGB-Pipe zu übertragen, aber ich kann die Parameter scheinbar nicht richtig einstellen:
convert test.jpg -crop 223x187+588+757 -rotate 330 rgb:- | convert -size 287x273 -depth 8 rgb:- -crop 200x100+43+87 crop3.jpg
convert: unexpected end-of-file `-': No such file or directory @ error/rgb.c/ReadRGBImage/231.
Ok, es stellt sich also heraus, dass der obige Fehler darin besteht, dass meine berechnete Größe für das Bild sich von den Berechnungen von ImageMagick um zwei Pixel unterscheidet. Es ist also ein zusätzliches Problem, die Bildgrößenberechnung genauso wie bei IM durchführen zu müssen, da die beiden Befehle in einer Pipeline zusammengefasst werden müssen.