In this tutorial, we’ll use several tools to quickly find out and display the dimensions of an image file from the Linux command line.
2. The file Command
The file command is available on the majority of Linux distributions. Behind the scenes, it reads the metadata from the headers of the image files, thus providing a performance advantage. We can use the file command followed by image paths to find out the dimensions of images:
$ 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
As we can see, it prints the metadata for myimage.jpeg. If we want to grab merely the dimensions of the image, we can grep the output:
$ file myimage.jpeg | grep -Eo "[[:digit:]]+ *x *[[:digit:]]+" 768x768
- The -E flag will enable extended regular expressions
- The -o option will print only the text that’s matched
However, we should know that the file command will only print dimensions for JPEG, PNG, GIF, WEBP, PGM, and PPM images.
3. The identify Command
The identify command comes with the ImageMagick suite. It identifies a lot of information for numerous image types. Like the file command, it also reads from the image header.
On most Linux distributions, ImageMagick isn’t installed out of the box. However, it should be available on the official package repositories under the name imagemagick. If our Linux distro is Debian-based or Fedora, we can use yum or apt.
Once installed, we can verify it using the command:
$ identify --version | grep Version Version: ImageMagick 7.1.0-2 Q16 x86_64 2021-06-25 https://imagemagick.org
Using the identify tool is a piece of cake. Type in the identify command followed by the image path:
$ identify myimage.jpeg myimage.jpeg JPEG 768x768 768x768+0+0 8-bit sRGB 86290B 0.010u 0:00.001
Apart from JPEG, we can enlist the other image types that identify supports out of the box:
$ 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
As we can see in the “Delegates” field, the tool supports a wide range of image and document formats as well.
4. The exiv2 Manager
The exiv2 tool is used to manage image metadata. It’s meant specifically for photography users, but it’s useful in other scenarios as well.
It’s not pre-installed on many distributions, so we’ll need to install the exiv2 package from the official repository using a package manager such as yum or apt.
Once exiv2 is installed, we can verify it:
$ exiv2 --version exiv2 0.27.4
We can use exiv2 by typing the command followed by our image path:
$ 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
Upon running the command, it will grab all the available metadata from the image. If we want to grab only the image dimensions, we can grep its output:
$ exiv2 myimage.jpeg | grep -i "image size" Image size : 768 x 768
The -i flag disables the case-sensitive mode. Additionally, exiv2 doesn’t work with PPM or PGM formats.
5. The mediainfo Utility
MediaInfo is a free program that is used to check for metadata about media files. It supports video, audio, and image files as well.
As before, install the package mediainfo from the official package repository using yum or apt. Alternatively, we can also use Snap to install the package:
$ snap install mediainfo
We can then verify the installation:
$ mediainfo --version MediaInfo Command line, MediaInfoLib - v21.03
Just like the other tools, we simply type the mediainfo command followed by image paths:
$ 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
To narrow down the output, we can grep the *Width* and *Height* fields:
$ mediainfo avatar.webp | grep -iE "width|height" Width : 768 pixels Height : 768 pixels
We should note that mediainfo doesn’t work with WEBP, PPM, or PGM formats.
In this tutorial, we took a look at using different tools to quickly find out the dimensions of images from the command line.