如何删除BASH中没有足够景观的图像?

时间:2015-01-18 01:23:52

标签: image bash

我使用图像刮刀从Reddit中获取流行图像,然后将其用作桌面墙纸。但是那些与我的桌面景观分辨率不够接近的结果看起来很有趣。在BASH中有一种很好的方法可以删除高度:宽度比低于某个水平的所有图像吗?

1 个答案:

答案 0 :(得分:1)

尝试从ImageMagick中识别:

identify -format "%f %[fx:w/h]\n" file.jpg [or files]

它将以以下格式输出:

filename1 image_ratio
filename2 image_ratio
...

因此,如果您的桌面的图像比率为1.777,您可以尝试以下方法:

identify -format "%f %[fx:w/h]\n" *.jpg | grep " 1\.[678]" | cut -d " " -f 1

表示图像比率为1.6到1.899999的文件列表,假设文件名中没有空格。

编辑:

如果你想删除"错误"文件尝试:

identify -format "%f %[fx:w/h]\n" *.jpg | grep -v " 1\.[678]" | cut -d " " -f 1 

用于1.6-1.9范围之外的文件名。如果您100%舒适,文件名中没有空格的文件,请尝试:

identify -format "%f %[fx:w/h]\n" *.jpg | grep -v " 1\.[678]" | cut -d " " -f 1 | xargs rm