是否有一种编程式的 Linux/Unix/Mac 方法来获取 JPEG 的尺寸?

是否有一种编程式的 Linux/Unix/Mac 方法来获取 JPEG 的尺寸?
Inner Sanctum ~/mirror/images $ file wardrobe_square_90.gif
wardrobe_square_90.gif: GIF image data, version 89a, 90 x 90
Inner Sanctum ~/mirror/images $ file wardrobe_square_90.jpg
wardrobe_square_90.jpg: JPEG image data, JFIF standard 1.01
Inner Sanctum ~/mirror/images $ file wardrobe_square_90.png
wardrobe_square_90.png: PNG image data, 90 x 90, 8-bit/color RGB, interlaced

调用某些格式的文件可以获取图像的尺寸,但不能获取 JPEG。

我发现了一种使用 ImageMagick 调用 convert 来将 JPEG 或诸如此类的图像转换成 PNG 的方法,但是这种方法有一点代码味道。

有没有好方法来查询 JPEG 的尺寸?

谢谢,

答案1

ImageMagick 具有identify“描述一个或多个图像文件的格式和特征”的功能。

$ identify bild.jpg 
bild.jpg JPEG 480x640 480x640+0+0 8-bit DirectClass 57.2KiB 0.000u 0:00.000

答案2

与大多数 UNIX 事物一样,有多种方法可以做同样的事情。

NetPBM 实用程序提供了一种实用程序pnmfile,当与 结合使用时djpeg,可以提供 JPEG 文件的文件尺寸:

% djpeg default_wallpaper.jpg | pnmfile -
-:      PPM raw, 1920 by 1280  maxval 255

djpeg可以在许多 JPEG 包中找到,NetPBM 实用程序也是如此。例如,在 Centos/RHEL 上,可以从基础存储库获取包: netpbm-progslibjpeg-turbo

相关内容