我有以下代码进行图片转换。
我有一个包含许多图像的目录,我想转换宽度小于200像素的所有图像。
无论广告延伸如何,jpg
,gif
或png
find . -iname \*.jpg -exec convert -verbose -resize 200x140! "{}" "{}" \;
答案 0 :(得分:1)
我认为你想要这个 - 或者非常接近它的东西 - 所以先备份!
find . \( -iname \*.jpg -o -iname \*.png -o -iname \*.gif \) \
-exec bash -c '[ $(identify -format %w "$0" ) -lt 200 ] && convert "$0" -resize 200x140\! "$0"' {} \;
那说...... "从当前目录(.
)开始,以不区分大小写的方式(-iname
)找到名称结尾的所有文件,在JPG
,PNG
或GIF
中为每个人创建一个新的bash
shell。进入shell后,获取文件的宽度,如果小于200像素,执行convert
命令将文件大小调整为200x140,忽略宽高比。"
答案 1 :(得分:0)
其中的“第一”部分是:获取该文件夹中所有图像的宽度。如果我正确地阅读了你的问题,那就是你遇到问题的地方;因此,您可以查看ImageMagick附带的识别命令。它像这样工作
A(int la, double lb, double lc, int one) :
A( la, lb, lc, info( one ) )
{
}
有关处理格式的信息,请参阅here。一旦获得“宽度匹配”文件列表,您就应该能够进一步转换它们。