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