Image processing 如何使用ImageMagick对不同方向的图像进行大规模转换/调整大小?
我有一些包含垂直和水平图像的文件夹,我想将图像调整为更小的格式和更低的质量 其中一些具有以下格式:Image processing 如何使用ImageMagick对不同方向的图像进行大规模转换/调整大小?,image-processing,graphics,imagemagick,imagemagick-convert,Image Processing,Graphics,Imagemagick,Imagemagick Convert,我有一些包含垂直和水平图像的文件夹,我想将图像调整为更小的格式和更低的质量 其中一些具有以下格式: 宽度=3x,高度=2x,即3000x2000或1500x1000 宽度=2x,高度=3x,即2000x3000或1000x1500 如何表达用于convert的命令行,将其转换为两种较小的格式,质量较低,并调整大小: 宽度=900,高度=600 高度=600,高度=900 如何使此命令行仅适用于水平图像w>h convert*.jpg-调整900x600大小-质量80*.jpg 我不能使用这样的语
convert
的命令行,将其转换为两种较小的格式,质量较低,并调整大小:
w>h
convert*.jpg-调整900x600大小-质量80*.jpg
我不能使用这样的语法:
convert*.jpg-调整大小50%-质量80*.jpg
-所有图像都可以有不同的宽度@area count选项
在resize命令中指定像素数,图片将保留比例。因此,无论方向如何,您总共需要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
它将运行所有JPEG并告诉您什么是什么。我发现我可以使用
mogrify-path out-resize 900x900-quality 90%*.jpg
立即将水平和垂直图像调整为900x600或600x900
900x900并不意味着900宽和900高,而是将更大的图像缩放到极限。我发现我可以使用
mogrify-path out-resize 900x900-quality 90%*。jpg
将水平和垂直图像的大小调整为900x600或600x900。
chmod +x go
./go