使用批处理文件按分辨率组织图像

使用批处理文件按分辨率组织图像

经过一番挖掘,我试图找出一个命令行解决方案,用于根据图像的分辨率将非常大的图像档案组织到文件夹中,1920x1080、1600x1200、1600x900 等。

我在 Superuser 上看到几篇帖子提到了 ImageMagick,这是我试图完成的疯狂任务的最佳方法吗?除了来自 Microsoft 的命令行函数/小程序/工具外,我从未使用过任何其他命令行函数/小程序/工具。

我对命令行使用还很陌生,但我很享受使用 Powershell、xcopy 和 robocopy 的过程。

我正在慢慢尝试将自己进一步推向 Linux 世界,在我的其中一台物理机和一台虚拟机上运行 Ubuntu,这也是一种选择。

答案1

是的,Imagemagick 是最佳选择。您需要阅读文档,因为它是一个非常强大的软件包,但我会帮助您入门。该identify命令就是您要找的。再次查看文档,但这些选项将在图像上打印文件名和分辨率(%f打印文件名,%w%h以像素为单位打印宽度和高度):

identify -format "%f %wx%h" SampleImage.png

输出:SampleImage.png 1024x1024

如果您的文件夹中装满了 jpeg 图像,那么您可以使用以下命令(在 Windows 上)生成一个包含图像名称和所有 jpeg 图像分辨率的文件:

for %i in (*.jpg) do identify -format "%f %wx%h\n" "%i" >> resolutions.txt

添加\n是为了强制在图像名称之间添加换行符,否则所有内容都会出现在一行上。

这只是一个开始。你用来分组和移动它们的方法也将是一个有趣的问题。

编辑:您可以使用的一种组织文件的方式是将分辨率添加到名称中。可以identify -format使用该选项来构建批处理文件以重命名图像:

 for %i in (*.jpg) do identify -format "ren ""%f"" ""%wx%h-%f""\n" "%i" >> renImages.cmd

生成的文件内容如下:

ren "Sample Image.jpg" "1024x1024-Sample Image.jpg"
ren "Sample2.jpg" "1024x512-Sample2.jpg"
...

在提示符下运行renImages.cmd以重命名所有图像,然后您可以根据需要对图像进行排序和分组。

相关内容