在Linux终端查找图像尺寸
1. 概述
在本教程中,我们将使用多种工具从 Linux 命令行快速找出并显示图像文件的尺寸。
2. file命令
file 命令在 大多数 Linux 发行版上都可用。在幕后,它从图像文件的标题中读取元数据,从而提供了性能优势。我们可以使用file命令后跟图像路径来找出图像的尺寸:
$ file myimage.jpeg
myimage.jpeg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 300x300, segment length 16,
Exif Standard: [TIFF image data, little-endian, direntries=7, orientation=upper-left,xresolution=98,
yresolution=106, resolutionunit=2, software=GIMP 2.10.24, datetime=2021:07:07 21:18:52],
progressive, precision 8, 768x768, components 3
如我们所见,它打印myimage.jpeg的元数据。如果我们只想获取图像的尺寸,我们可以grep 输出:
$ file myimage.jpeg | grep -Eo "[[:digit:]]+ *x *[[:digit:]]+"
768x768
- -E标志将启用扩展正则表达式
- -o选项将仅打印匹配的文本
但是,我们应该知道file命令只会打印 JPEG、PNG、GIF、WEBP、PGM 和 PPM 图像的尺寸。
3. identify命令
identify 命令随ImageMagick 套件提供。它为众多图像类型识别了大量信息。像file命令一样,它也从图像头中读取。
3.1. 安装
在大多数 Linux 发行版上,ImageMagick 并不是开箱即用的。但是,它应该在名为imagemagick的官方包存储库中可用。如果我们的 Linux 发行版是基于 Debian 或 Fedora,我们可以使用yum或apt 。 安装后,我们可以使用以下命令对其进行验证:
$ identify --version | grep Version
Version: ImageMagick 7.1.0-2 Q16 x86_64 2021-06-25 https://imagemagick.org
3.2. 用法
使用 identify工具是小菜一碟。输入 identify命令,后跟图像路径:
$ identify myimage.jpeg
myimage.jpeg JPEG 768x768 768x768+0+0 8-bit sRGB 86290B 0.010u 0:00.001
除了 JPEG,我们还可以列出其他identify支持的图像类型:
$ identify --version
Version: ImageMagick 7.1.0-2 Q16 x86_64 2021-06-25 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib cairo djvu fontconfig freetype heic jbig jng jp2 jpeg lcms
lqr ltdl lzma openexr pangocairo png raqm raw rsvg tiff webp wmf x xml zip zlib
正如我们在“代表”字段中看到的那样,该工具还支持多种图像和文档格式。
4. exiv2管理器
exiv2 工具用于管理图像元数据。它专门针对摄影用户,但在其他情况下也很有用。
4.1. 安装
它没有在许多发行版上预安装,因此我们需要使用包管理器(例如yum或apt )从官方存储库安装exiv2包。
安装exiv2后,我们可以对其进行验证:
$ exiv2 --version
exiv2 0.27.4
4.2. 用法
我们可以 通过键入命令后跟我们的图像路径来使用exiv2 :
$ exiv2 myimage.jpeg
File name : myimage.jpeg
File size : 86290 Bytes
MIME type : image/jpeg
Image size : 768 x 768
Thumbnail : image/jpeg, 7452 Bytes
运行该命令后,它将从图像中获取所有可用的元数据。如果我们只想获取图像尺寸,我们可以grep其输出:
$ exiv2 myimage.jpeg | grep -i "image size"
Image size : 768 x 768
-i标志禁用区分大小写的模式。此外,exiv2不适用于 PPM 或 PGM 格式。
5. mediainfo实用程序
MediaInfo 是一个免费程序,用于检查有关媒体文件的元数据。它还支持视频、音频和图像文件。
5.1. 安装
和以前一样,使用yum或apt 从官方软件包存储库安装软件包mediainfo。或者,我们也可以使用Snap 安装包:
$ snap install mediainfo
然后我们可以验证安装:
$ mediainfo --version
MediaInfo Command line,
MediaInfoLib - v21.03
5.2. 用法
就像其他工具一样,我们只需键入mediainfo命令和图像路径:
$ mediainfo myimage.jpeg
General
Complete name : myimage.jpeg
Format : JPEG
File size : 84.3 KiB
Image
Format : JPEG
Width : 768 pixels
Height : 768 pixels
Color space : YUV
Bit depth : 8 bits
Compression mode : Lossy
为了缩小输出范围,我们可以使用 grep *Width* 和 *Height* 字段:
$ mediainfo avatar.webp | grep -iE "width|height"
Width : 768 pixels
Height : 768 pixels
我们应该注意到mediainfo不适用于 WEBP、PPM 或 PGM 格式。