1

我想使用 bash for 循环在多个图像上用 imagemagick 画一条线。我希望这条线位于每张图像上略有不同的位置。不幸的是,这个间距需要用十进制数字定义,即我是 | 公元前。

最终,我希望我的循环看起来像:

j=1
k=.3
for i in *.jpg
do
convert $i -draw "line $"(( $k + $j ))" | bc ,10 $"(( ($k + $j ))" | bc ,20" "${i%.*}line.jpg"

j=$(( $j + 1 ))

done

但是,我什至无法让这个更简化的示例工作:

convert $i -draw "line $"(( $j+2.1 ))" | bc ,581 $j, 514" test.jpg

有任何想法吗?为帮助和信息干杯!

4

1 回答 1

4

经过多次试验和错误,下面在 bash for 循环中创建增量的十进制值,以用于 imagemagick 实用程序 convert。

j=56
k=4.5111
for i in *.jpg
do
    p=$(echo "$j + $k" | bc) 
    convert $i -draw "line $p, 581 $p, 514" "${i%.*}.jpg"

    j=$(( $j + 1 ))
done
于 2013-11-04T02:35:25.413 回答