标题:
通过命令行进一步处理图形--同时处理多个图像
[打印本页]
作者:
look_w
时间:
2018-5-7 20:09
标题:
通过命令行进一步处理图形--同时处理多个图像
在我的上一篇文章中,我已经给出了同时转换多个图像的代码。正如一些人所指出的,我给出的代码并不是最好的方法。
下面是我以前给出的代码:
清单 1. 生成当前目录下所有 JPEG 图片的缩略图
1
2
3
4
for img in `ls *.jpg`
do
convert -sample 25%x25% $img thumb-$img
done
现在已经证明这是不好的 bash 风格,因为它没有很好地处理文件名中的空格(每个词将被认为是一个单独的文件名)。取而代之,一个更好的方法是:
清单 2. 生成当前目录下所有 JPEG 图片的缩略图,具有更好的 bash 风格
1
2
3
4
for img in *.jpg
do
convert -sample 25%x25% $img thumb-$img
done
这将更好地处理文件名中的空格。
不过,结果证明这两个方案 ImageMagick 都不需要 —— 我们可以只使用 mogrify 命令。 mogrify 命令用于转换一系列文件(虽然它同样可以处理单一的图像)。
前面的代码片断将变成:
mogrify -sample 25%x25% *.jpg
注意,这将会导致原始图像被新图像所覆盖。很难指定输出文件名,这是 mogrify 的局限性之一。
指定输出文件名的惟一的方法是,改变输出文件相对于输入文件的格式。这样的结果是新的图像具有了不同的扩展名。例如:
mogrify -format png -sample 25%x25% *.jpg
这将创建一系列输出文件,这些文件的末尾的 jpg 将由 png 所取代,同时伴随着文件格式的改变。
前面定义的所有转换也都可以用 mogrify 命令来完成,所以,如果您不在意原始文件被覆盖的话,这是一个很好的选择。如果您不希望原始文件被覆盖,那么您可以将它们拷贝到一个临时目录来对它们进行转换(mogrify),并改变它们的名字—— 或者您继续使用 convert 和 bash。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0