我有一些包含垂直和水平图像的文件夹,我希望将图像调整为更小的格式和更低的质量。
其中一些格式为:
如何为convert
表达这样的命令行,将它们转换为质量较低的两种较小格式并调整大小:
如何使此命令行仅适用于水平图像w > h
?
convert *.jpg -resize 900x600 -quality 80 *.jpg
?
我不能使用这样的语法:
convert *.jpg -resize 50% -quality 80 *.jpg
- 所有图片都可以有不同的宽度。答案 0 :(得分:0)
有几种选择......
选项1
如果要根据方向调整为1500x1000或1000x1500,可以使用@ area count option
指定调整大小命令中的像素数,图片将保留比例。因此,无论方向如何,您总共需要1500000像素:
mogrify -resize 1500000@ *.jpg
选项2
您可以使用这样的小脚本来确定每个图像是高(纵向)还是宽(横向),然后对每个图像进行任何处理:
#!/bin/bash
for f in *.jpg
do
read w h <<< $(convert "$f" -ping -format "%w %h" info: )
if [ $w -gt $h ]; then
echo "$f is $h tall and $w wide (landscape)"
else
echo "$f is $h tall and $w wide (portrait)"
fi
done
将脚本保存为go
,然后键入:
chmod +x go
./go
它会遍历所有的JPEG并告诉你它是什么。
答案 1 :(得分:0)
我发现我可以使用mogrify -path out -resize 900x900 -quality 90% *.jpg
并将水平和垂直图像一次调整为900x600或600x900。
900x900并不意味着900宽度和900高度,而是扩大规模以限制。