我需要一种方法来查找具有特定宽高比的所有图片,例如 16:9,如 1920x1080 1280x720 944x531。
我找到了这个页面如何使用命令行查找具有特定像素大小的所有图像?但它只说明如何找到特定的尺寸,而不是纵横比。
我使用 bash。
答案1
您可以从链接中修改命令
如何使用命令行查找具有特定像素大小的所有图像?
这将打印带有大约横向 16/9 图片的文件名:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i\n' '{}' \; | awk '$1/$2>1.7 && $1/$2<1.8 {print $3}'
这将对大约 9/16 的肖像执行相同的操作:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i\n' '{}' \; | awk '$1/$2>0.5 && $1/$2<0.6 {print $3}'
当然,您可以以更复杂的方式使用 awk 中的数学运算(为了更好地阅读,仅阅读 awk 部分):
awk 'sqrt((($1/$2)-(16/9))^2)<sqrt(0.5^2) {print $3}'
由于 awk 没有“abs”函数,我只是使用“^2”和“sqrt”创建它来检查比率是否在“delta”内(在此示例中为 0.5)。