我有一个尺寸为4000 * 4000的大尺寸图像。我想对图像进行各种操作:
convert a.jpg -crop 6x6@ +repage +adjoin tile_6_%d.jpg
convert a.jpg -crop 9x9@ +repage +adjoin tile_9_%d.jpg
convert a.jpg -crop 3x3@ +repage +adjoin tile_3_%d.jpg
convert a.jpg -resize 120x120 thumbnail.jpg
因此创建了一批36+81+9+1 = 127
我正在尝试做类似
的事情 convert a.jpg \
\( +clone -resize 66% -crop 6x6@ +repage +adjoin -write tile_6x6_%d.jpg +delete \) \
\( +clone -resize 33% -crop 3x3@ +repage +adjoin -write tile_3x3_%d.jpg +delete \) \
\( +clone -crop 9x9@ +repage +adjoin -write tile_9x9_%d.jpg +delete \) \
-density 150 -quality 50 -resize 120x120 thumbnail.jpg
但是这并没有以所需的方式工作并产生大约250个文件。这有什么不对?连接所有这些命令的最佳方法是什么?
答案 0 :(得分:0)
+delete
仅删除图像序列中的最后一个图像。你想要-delete 0--1
,这意味着删除图像0到-1,其中负索引-1指的是序列中的最后一个图像。
为了详细说明,每个-crop
命令都会创建多个映像,因此您需要确保在将它们写入磁盘后从堆栈中删除所有映像。使用像这样的复杂转换命令行时,在任何时候查看图像堆栈的内容的好方法是插入-write info:
。