将一堆图像从 svg 转换为 png

Convert a bunch of images from svg to png

我需要将文件夹中的所有图像从 svg 转换为 png。假设图像被称为 test1.svg、test2.svg、...、testn.svg。使用以下脚本:

for i in *.svg
do
    convert "$i" PNG24:"$i".png
done

正确完成工作,图像称为 test1.svg.png、test2.svg.png、...、testn.svg.png。我的问题是:

1) 是否可以将输出图像称为 test1.png、test2.png、...、testn.png,本质上是从中删除 'svg' 部分姓名?

2) 是否可以将它们直接发送到其他目录?

谢谢!

是的。您可以创建另一个目录并像这样将它们发送到那里:

mkdir other
for i in *.jpg; do
   convert "$i" PNG24:other/"${i%jpg}png"
done

如果您有很多图像要做,并且您使用的是 macOS 或 Linux,我会推荐 GNU Parallel 以更快地完成工作:

mkdir other
parallel convert {} PNG24:other/{.}.png ::: *jpg