Imagemagick 转换和合成一批文件
Imagemagick convert and compose batch of files
我正在尝试像这样快速转换一批文件:
convert ./src/*.png -set filename: '%t' -gravity West -draw 'image over 0,0 424,600 "./panel.png"' ./dest/%[filename:].png
这与 COMPOSITE 非常相似:
convert ./src/*.png ./panel.png -set filename: '%t' -gravity +0+0 -composite ./dest/%[filename:].png
除了最后一个不起作用,只是制作了第一个看起来很糟糕的文件。
好像是bug?
有人知道如何使用 -composite 使其更正确吗?
for|awk|ls|find for each file in shell 是不可接受的——因为它比第一个例子慢。
Looks like it's bug?
不是错误。您的第二个命令是告诉 ImageMagick 将匹配到图像堆栈的所有文件都消耗掉,并将其合成为一个。
您可以使用 mogrify
实用程序尝试相同的解决方案,但我相信如果您将 bash 脚本扩展为单个 for
循环。
for f in $(ls src/*.png)
do
dest=$(basename $f);
convert "$f" ./panel.png -gravity West -composite "./dest/$dest"
done
- 读入文件列表,
- 设置它们的输出文件名,
- 包括 IM 特殊图像占位符“null:”,
- 读入叠加图片,
- 可选地,设置几何,
- 并使用“-layers composite”合成叠加到所有其他图像上。
null:
将原始输入文件列表与叠加图像分开,因此 ImageMagick 知道您要在堆栈中的哪个位置开始进行合成。
尝试这样的事情(为了便于阅读,每行一步):
convert ./src/*.png \
-set filename: '%t' \
null: \
./panel.png \
-layers composite ./dest/%[filename:].png
您可以使用 Imagemagick mogrify 命令。参见 http://www.imagemagick.org/Usage/basics/#mogrify and http://www.imagemagick.org/Usage/basics/#mogrify_compose
cd to input directory
mogrify -format png -path ./dest -gravity West -draw 'image over 0,0 424,600 "./panel.png"' *.png
我正在尝试像这样快速转换一批文件:
convert ./src/*.png -set filename: '%t' -gravity West -draw 'image over 0,0 424,600 "./panel.png"' ./dest/%[filename:].png
这与 COMPOSITE 非常相似:
convert ./src/*.png ./panel.png -set filename: '%t' -gravity +0+0 -composite ./dest/%[filename:].png
除了最后一个不起作用,只是制作了第一个看起来很糟糕的文件。 好像是bug?
有人知道如何使用 -composite 使其更正确吗? for|awk|ls|find for each file in shell 是不可接受的——因为它比第一个例子慢。
Looks like it's bug?
不是错误。您的第二个命令是告诉 ImageMagick 将匹配到图像堆栈的所有文件都消耗掉,并将其合成为一个。
您可以使用 mogrify
实用程序尝试相同的解决方案,但我相信如果您将 bash 脚本扩展为单个 for
循环。
for f in $(ls src/*.png)
do
dest=$(basename $f);
convert "$f" ./panel.png -gravity West -composite "./dest/$dest"
done
- 读入文件列表,
- 设置它们的输出文件名,
- 包括 IM 特殊图像占位符“null:”,
- 读入叠加图片,
- 可选地,设置几何,
- 并使用“-layers composite”合成叠加到所有其他图像上。
null:
将原始输入文件列表与叠加图像分开,因此 ImageMagick 知道您要在堆栈中的哪个位置开始进行合成。
尝试这样的事情(为了便于阅读,每行一步):
convert ./src/*.png \
-set filename: '%t' \
null: \
./panel.png \
-layers composite ./dest/%[filename:].png
您可以使用 Imagemagick mogrify 命令。参见 http://www.imagemagick.org/Usage/basics/#mogrify and http://www.imagemagick.org/Usage/basics/#mogrify_compose
cd to input directory
mogrify -format png -path ./dest -gravity West -draw 'image over 0,0 424,600 "./panel.png"' *.png