获取图像详细信息 ImageMagick

获取图像详细信息 ImageMagick

如何使用此格式的 ImageMagick 获取所有文件夹和子文件夹中图像的详细信息。

file-name file-location file-format size width height

PS-我已阅读此页面http://www.imagemagick.org/script/escape.php但找不到如何获取文件位置路径以及如何在子文件夹中包含文件。

答案1

我很确定 ImageMagick 本身不会像这样递归工作。您需要围绕它编写一个脚本/程序来处理您的目录结构,并为每个要检查的文件调用一次它。

答案2

以下命令将返回您正在寻找的信息:

  identify -format "%f %d %m %b %w %h\n" ./* ./*/*
  1. 文件目录的转义序列是%d
  2. 要包含当前文件夹中的所有文件,请使用./*(shell 通配符)。
  3. 要包含所有子文件夹中的所有文件,请使用./*/*(shell 通配符)。

(您没有说明您使用的是哪种操作系统。以上内容适用于 Linux、Unix 和 Mac OS X。对于 Windows,使用.\*.*.\*.*\*.*作为通配符。)

注意力!,如果您的文件夹中有非图像文件或 PDF 文档,此命令可能会运行很长时间。非图像文件将产生类似以下的错误消息:

identify: no decode delegate for this image format `EXE' @ error/constitute.c/ReadImage/501.

可以通过将所有错误消息重新重定向至 来避免这种情况/dev/null

因此使用这个变体可能会更好:

 identify                                   \
   -format "%f %d %m %b %w %h\n"            \
    *.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif}   \
    */*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
   2>/dev/null

以下是 Mac OS X 的一个例子:

delta.jpg #12649876 JPEG 17441B 307 205
CMYK_separation_–_maximum_black.jpg #21270389 JPEG 1453360B 1600 4780
HFnCz.jpg #21270389 JPEG 356748B 1600 1195
合并.jpg #21270389 JPEG 528221B 1600 1195
res.jpg #26408022 JPEG 57546B 603 300
红色-500x2000.jpg #26951336 JPEG 6288B 500 2000
已调整大小的红色-2000x2000.jpg #26951336 JPEG 7430B 1000 1000
大边-25.jpg #27290574 JPEG 98916B 1024 288
大.jpg #27290574 JPEG 19216B 1024 576
double.jpg #27290574 JPEG 35076B 480 270
小.jpg #27290574 JPEG 20716B 720 404

#27290574(是的,我确实在具有名为 的子目录和类似的目录中运行了此命令#26951336......)

您可能希望输出看起来更像表格。为此,请通过管道传输结果column -t。然后尝试以下操作:

 identify                                   \
   -format "%f %d %m %b %w %h\n"            \
    *.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif}   \
    */*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
   2>/dev/null  |  column -t

我的情况的结果是:

delta.jpg #12649876 JPEG 17441B 307 205
CMYK_separation_–_maximum_black.jpg #21270389 JPEG 1453360B 1600 4780
HFnCz.jpg #21270389 JPEG 356748B 1600 1195
合并.jpg #21270389 JPEG 528221B 1600 1195
res.jpg #26408022 JPEG 57546B 603 300
红色-500x2000.jpg #26951336 JPEG 6288B 500 2000
已调整大小的红色-2000x2000.jpg #26951336 JPEG 7430B 1000 1000
大边-25.jpg #27290574 JPEG 98916B 1024 288
大.jpg #27290574 JPEG 19216B 1024 576
double.jpg #27290574 JPEG 35076B 480 270
小.jpg #27290574 JPEG 20716B 720 404

相关内容