shell command to get pixel size of an image
found a solution: identify
, part of the imagemagick package, does exactly what I need
$ identify color.jpg
> color.jpg JPEG 1980x650 1980x650+0+0 8-bit DirectClass 231KB 0.000u 0:00.000
Rather than parsing the output of identify
by eye, or by text utilities, you can use its -format
option to output the width and height in whatever format suits you best. For example:
$ identify -format '%w %h' img.png
100 200
$ identify -format '%wx%h' img.png
100x200
A list of image properties that you can output can be found on this page, but for the question here, it seems all you need are %w
and %h
, which give the image's width and height, respectively, in pixels.
The flexibility afforded by -format
came in handy for me in finding the largest images in terms of pixels, by outputting %[fx:w*h]
for a number of images and sorting the output.
You might want to specify the -ping
option if you're processing many images, using more complicated escapes, and want to make sure the program doesn't waste time loading the entire images. With simple escapes, -ping
should be the default. More information on the choice between -ping
and +ping
can be found here.
you can just use the command "file" to get the informations you need:
~# file cha_2.png
cha_2.png: PNG image data, 656 x 464, 8-bit/color RGB, non-interlaced