如何根据分辨率将图像分类到文件夹中?

fla*_*ble 10 resolution sorting images

背景:我有一个文件夹,里面装满了保存的桌面图片。我想根据它们的分辨率 - 1024x768 等将它们放入文件夹中。即时创建文件夹是一个奖励。目前,图像都在一个文件夹中,但其中一些在子文件夹中。我可以手动合并它们,如果这能让事情变得更容易。

我更喜欢终端,尽管我仍然是一个 bash 新手。我根本不是一个程序员,真的。

我使用的是 Mac OS X,但我不反对安装额外的应用程序来完成此操作(MacPorts?),甚至不反对使用其他操作系统(我现在在 VMWare 中安装了 Windows XP、Windows Vista 和 Ubuntu 9) )。

小智 12

我知道这是一个一年多的话题(对此很抱歉),但我认为有人可能需要完整的工作脚本,所以就在这里。把这里的想法编译成我们得到的脚本。

#!/bin/bash

for image in *.jpg;
    do res=$(identify -format %wx%h\\n $image);
    mkdir -p $res;
    mv $image $res;
done
Run Code Online (Sandbox Code Playgroud)


fla*_*ble 4

说真的,谢谢大家的回复!我又回到了这个话题,经验更加丰富,而且这里的大多数评论现在都更有意义了。

我稍微调整了 @zatatlan 的脚本以容纳文件名中的空格并添加更多文件扩展名。

#!/bin/bash

shopt -s nullglob # The script spits errors if this is not set and there are, say, no *.png files.
for image in *.jpg *.JPG *.jpeg *.JPEG *.gif *.GIF *.bmp *.BMP *.png *.PNG;
    do res=$(identify -format %wx%h\\n "$image");
    mkdir -p $res;
    mv "$image" $res;
done
Run Code Online (Sandbox Code Playgroud)