Imagemagick裁剪循环不能正常工作

时间:2015-01-31 06:01:14

标签: bash imagemagick crop imagemagick-convert

我需要从一个切出16张图像。
.tif format 中的所有图片。 每个图像左上角的坐标包含在文本文件中 就像

100,200
300,400
...

我使用了 bash代码

IFS=','
while read x y; do 
convert image.tif -crop 262x262+$x+$y image_%02d.tif; 
done < coordinates

它给了我395张坐标错误的图像 我使用 Ubuntu 14.04, Imagemagick 6.7.7
请帮忙。

1 个答案:

答案 0 :(得分:1)

试试这个 - 你没有任何变量来代表输出文件说明符中的%02d

#!/bin/bash
i=1
IFS=','
while read x y; do 
name=$(printf "image%02d.tif" $i)
convert image.tif -crop 262x262+$x+$y "$name"
((i++))
done < coordinates

如果你真的不需要调用图像image01.tifimage02.tifimage1.tifimage2.tif就可以了,你可以简单地使用这个

#!/bin/bash
i=1
IFS=','
while read x y; do 
convert image.tif -crop 262x262+$x+$y image$i.tif
((i++))
done < coordinates