根据分辨率在Linux目录中查找图像[关闭]


0

我想扫描linux目录中的所有图像(递归地在子文件夹中),并找到分辨率高于特定阈值的那些图像(例如,那些分辨率至少高于特定阈值的图像) 800x600 或者如果更容易,宽度高于 1000 像素)。然后我想在一个地址中记录他们的地址 .txt 文件,随附他们的决议(或 [width], [height] 为了更好的格式化)。

我怎么能在bash脚本中这样做?我必须扫描数百万张图片。



1
还询问了askubuntu: askubuntu.com/q/1048914/10127
glenn jackman

2
在一天结束时,你不应该像这样交叉。既然你设法得到答案,我就投票关闭并删除它。我毫不怀疑你有充分的理由需要这些信息,但这样的交叉真的不好。这是浪费的努力,并表示对那些想要善意帮助你的人有点不尊重。
JakeGould

4
这是交叉发布的 问问Ubuntu
JakeGould

Answers:


2

下面的bash脚本 - 使用 ImageMagick的 identify utility-将以递归方式在指定目录中搜​​索以。结尾的所有文件 .jpg.jpeg.png.gif 然后搜索那些报告超过800 x 600的图像。

#!/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

我继续编辑了这个,因为它是一个非常好的答案,但默认情况下不会在系统上安装ImageMagick。所以让它更清晰。
JakeGould
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.