如何有效地连接ImageMagick并转换命令以产生无图像

时间:2014-03-06 11:39:22

标签: performance imagemagick image-manipulation imagemagick-convert

我有一个尺寸为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个文件。这有什么不对?连接所有这些命令的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

+delete仅删除图像序列中的最后一个图像。你想要-delete 0--1,这意味着删除图像0到-1,其中负索引-1指的是序列中的最后一个图像。

为了详细说明,每个-crop命令都会创建多个映像,因此您需要确保在将它们写入磁盘后从堆栈中删除所有映像。使用像这样的复杂转换命令行时,在任何时候查看图像堆栈的内容的好方法是插入-write info: