根据分辨率在Linux目录中查找图像

根据分辨率在Linux目录中查找图像

我想扫描 Linux 目录中的所有图像(在子文件夹中递归扫描),并找到分辨率高于特定阈值的图像(例如,至少具有分辨率的图像,800x600或者更简单的说法是宽度高于1000像素的图像)。然后我想将它们的地址记录在一个.txt文件中,并附上它们的分辨率(或[width], [height]更好的格式)。

我如何在 Bash 脚本中做到这一点?我必须扫描数百万张图像。

答案1

下面的 bash 脚本使用图像魔术师identify实用程序 - 将递归搜索指定目录中以.jpg、和结尾的所有文件.jpeg,然后在这些文件中搜索报告尺寸超过 800 x 600 的图像。.png.gif

#!/bin/bash

if [ -z $1]; then
  echo -e $0 '[path to search]\nRecursively search the specified directory for images over 800x600'

else

  find $1 \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1>800 || $2>600'

fi

相关内容