ImageMagick несколько операций в одном вызове
Я пытаюсь заставить ImageMagick выполнять несколько операций (в данном случае, кадрирование) за один вызов, но это кажется невозможным. Например, я могу выполнить обрезку, поворот, а затем еще одну обрезку двумя отдельными командами:
$ convert test.jpg -crop 223x187+588+757 -rotate 330 crop2.jpg
$ convert crop2.jpg -crop 200x100+43+87 crop3.jpg
Но если я пытаюсь объединить их в одну команду, я получаю сообщение об ошибке:
$ convert test.jpg -crop 223x187 + 588 + 757 -rotate 330 -crop 200x100 + 43 + 87 crop3.jpg convert: геометрия не содержит изображения `test.jpg '@ warning / transform.c / CropImage / 666.
Очевидно, я мог бы просто создать канал, но, если это возможно, я хочу избежать дополнительных издержек нескольких процессов. Есть ли способ сделать это?
Обновление: Кроме того, канал кажется проблематичным: мне не нужна дополнительная стадия сжатия / распаковки, поэтому я пытаюсь передать его как RGB, но у меня не получается получить правильные параметры:
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.
Итак, получается, что вышеприведенная ошибка связана с тем, что мой расчетный размер изображения отличается от вычислений ImageMagick на два пикселя. Очевидно, что попытка получить размер изображения, точно такой же, как для IM, является дополнительной проблемой, связанной с необходимостью конвейерной передачи двух команд.