如何从文件夹中删除低于特定分辨率的图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从文件夹中删除低于特定分辨率的图片相关的知识,希望对你有一定的参考价值。

我有一个或多或少随机图片文件的大文件夹,我用它来显示Wallch的桌面背景。因为我注意到有些图片的分辨率太低而不能看起来很好,所以我想摆脱低于1000像素的高度。

自从我最近开始使用Ubuntu以来,我怀疑这可以通过命令行中的几行代码来完成,但是我很缺乏使用它并希望避免任何过于灾难性的事情,因此在尝试我之前寻求帮助拥有。

这些图片总共大约4演出,大约3000张图片,大多以.png或.jpg结尾,但有时在.JPG中,其中一些在子文件夹中最多3个级别。

有什么建议?

答案

您可以使用imagemagick及其identify命令。 http://www.imagemagick.org/script/identify.php

例如像bash函数这样的东西,它以文件名作为参数,调整minX和minY

function rmImgBySize
{
  minX=128
  miny=96
  xres=`identify -format "%[fx:w]" "$1"`
  yres=`identify -format "%[fx:h]" "$1"`
  if [ $xres -lt $minX ] || [ $yres -lt $minY ]
  then
    rm "$1"
  fi
}

export -f rmImgBySize

find /path/to/basedir/with/pictures/ -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" -exec bash -c 'rmImgBySize "$0"' "{}" ;

-iname告诉名字匹配应该是case Insensitive -o tell“or”

man identify
man find
另一答案

使用convert from ImageMagick

find -name '*.jpg' -o -name '*.png' -exec 
      convert "{}" -print "%w:%h:%d/%f
" /dev/null ; | 
      awk -vFS=: '$1<680||$2<1000{print}' | 
      xargs rm
另一答案

使用identify from ImageMagick

identify -format "%w:%h:%f
" * | awk -F : '$2<1000 {print $3}' | xargs rm

(PS:你必须在图片目录中运行此命令)

以上是关于如何从文件夹中删除低于特定分辨率的图片的主要内容,如果未能解决你的问题,请参考以下文章

Python - 删除范围之间的特定频率

如何过滤IQR低于特定值的矩阵的列?

百度上传控件webuploader如何限制 图片尺寸大小

如何在片段着色器中将分辨率从静态更改为动态

Android - 从堆栈中间删除特定片段不起作用

如何从后台弹出片段