如何从 Linux 命令行获取有关图像(图片)的信息?

如何从 Linux 命令行获取有关图像(图片)的信息?

我正在开发一个 Web 应用程序,目前正在从旧应用程序中迁移一些内容,但我讨厌必须打开图像编辑器才能获取有关正在迁移的图像的一些信息。例如图像尺寸。

有没有命令行我可以使用什么工具在 Linux 中完成这样的任务?

答案1

对于某些图像格式,您只需使用以下file命令:

$ file MyPNG.png 
MyPNG.png: PNG image, 681 x 345, 8-bit/color RGB, non-interlaced

并非所有图像格式都会报告大小(最明显的是 JPEG 不会报告大小):

$ file MyJpeg.jpg 
MyJpeg.jpg: JPEG image data, JFIF standard 1.01

对于这些,你必须使用更复杂的东西,例如:

$ convert MyJpeg.jpg -print "Size: %wx%h\n" /dev/null
Size: 380x380

convert命令是 ImageMagick 包的一部分。

答案2

获取此信息的最佳方式是使用以下identify命令:

$ identify image.png

或者仅限尺寸属性

$ identify -format "%wx%h\n" photo.jpg

** 如果你需要图片详情,请尝试以下操作:

$ identify -verbose image.png

identify是的一部分ImageMagick,您可以像这样在 Ubuntu 上安装:

$ sudo apt-get install imagemagick

答案3

exiv2 是从图片文件中获取信息的“工具”:

~$exiv2 myimage.jpg

输出:

File name       : myimage.jpg
File size       : 1196944 Bytes
MIME type       : image/jpeg
Image size      : 2592 x 1944
Camera make     : LG Electronics
Camera model    : LG-P970
Image timestamp : 2013:05:19 17:27:06
Image number    : 
Exposure time   : 1/9 s
Aperture        : 
Exposure bias   : 0 EV
Flash           : Yes, compulsory
Flash bias      : 
Focal length    : 3.7 mm
Subject distance: 
ISO speed       : 745
Exposure mode   : 
Metering mode   : Average
Macro mode      : 
Image quality   : 
Exif Resolution : 
White balance   : Auto
Thumbnail       : image/jpeg, 13776 Bytes
Copyright       : 
Exif comment    :

答案4

媒体信息将列出图像、音频和视频的详细元数据。它通常位于 Linux 的标准存储库中,也可以通过 OSX 上的 homebrew 获得。

您可以从媒体文件夹中以如下方式运行它:

mediainfo *

或者

mediainfo .

这两个命令将显示当前文件夹和子文件夹中所有媒体文件的信息。

显示从当前文件夹开始的所有 JPG 图像的信息(包括子文件夹):

find . -iname "*.jpg" -exec mediainfo {} \;

对于音频和视频,mediainfo列出音频/视频流的比特率、编码算法、容器类型、FOURCC 代码,即XVIDX264等。

主要发行版的标准存储库中有一个可用的 GUI,通常名为mediainfo-gui

相关内容