Как получить информацию об изображении (картинке) из командной строки Linux?

204847
nemesisfixx

Я работаю над веб-приложением, и в настоящее время я переношу некоторые вещи из старого приложения, но я ненавижу открывать редактор изображений, чтобы получить некоторую информацию об изображениях, которые я переношу. Такие вещи, как размеры изображения.

Есть ли инструмент командной строки, который я могу использовать для таких задач в Linux?

223

12 ответов на вопрос

220
Majenko

Для некоторых форматов изображений вы можете просто использовать 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.

Может быть, только я, но кажется, что imagemagick на самом деле загружает туда данные изображения, поскольку работает довольно медленно. вместо этого следует использовать imo jozxyqk 9 лет назад 5
о, `/ dev / null` - аргумент хе-хе Aquarius Power 9 лет назад 1
FWIW this is what I used to get the creation datetime of a photo: `identify -format "%[EXIF:DateTimeOriginal]\n" foobar.jpg` kralyk 7 лет назад 0
Текущая версия `file` поддерживает отображение размера JPEG без дополнительного параметра:` $ file foo.jpg` возвращает `foo.jpg: данные изображения JPEG, стандарт JFIF 1.01, соотношение сторон, плотность 72x72, длина сегмента 16, стандарт Exif. : [Данные изображения TIFF, big-endian, direntries = 1], базовая линия, точность 8, 120x120, кадры 3` Cœur 7 лет назад 0
188
Ielton

Лучший способ получить эту информацию - использовать identifyкоманду:

$ identify image.png 

или только атрибуты размера

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

Это часть ImageMagick, которую вы можете установить в Ubuntu следующим образом:

$ sudo apt-get install imagemagick 
Спецификации для строки формата можно найти в [руководстве GraphicsMagick] (http://www.graphicsmagick.org/GraphicsMagick.html#details-format). Sjoerd 11 лет назад 1
Я добавлю флаг `-verbose`. Мне нужно было найти DPI (которые находятся в поле Resolution) gc5 9 лет назад 9
для CentOS сделать: ням установить ImageMagick tidy 9 лет назад 0
Этот ответ работает как с jpegs, так и дает информацию, необходимую для его установки. Hugh Perkins 9 лет назад 0
+1 для опции `-format`. Мне нужна была только высота набора изображений, это здорово. tremby 8 лет назад 0
@fbrundu как DPI соотносится с разрешением типа `72x72` Seanny123 8 лет назад 2
24
Antonio Molinaro

exiv2 is "the tool" to get information from picture files:

~$exiv2 myimage.jpg 

outputs:

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 : 
21
ccpizza

mediainfo предоставит еще более подробную информацию. Он обычно находится в стандартных репозиториях в Linux, а также доступен через homebrew для OSX.

Попробуйте, например, запустить в текущей папке:

mediainfo * 

или же

mediainfo . 

Обе команды покажут информацию обо всех медиафайлах в текущей папке и подпапках.

Показать информацию обо всех изображениях JPG, начиная с текущей папки (включая подпапки):

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

Это также очень полезно с аудио и видео файлов, в том, что он показывает скорость передачи всех аудио / видео потоков, кодирование Algorythm, контейнерного типа, FOURCC кода, то есть XVID, X264и т.д.

Существует также графический интерфейс, доступный в стандартных репозиториях для всех основных дистрибутивов, обычно называемых mediainfo-gui

15
sdaau

Also, check out ExifTool by Phil Harvey; an example:

$ exiftool test.png ExifTool Version Number : 8.15 File Name : test.png Directory : . File Size : 12 MB File Modification Date/Time : 2014:02:13 13:04:52+01:00 File Permissions : rw-r--r-- File Type : PNG MIME Type : image/png Image Width : 2490 Image Height : 3424 Bit Depth : 8 Color Type : RGB Compression : Deflate/Inflate Filter : Adaptive Interlace : Noninterlaced Significant Bits : 8 8 8 Image Size : 2490x3424 

Btw, I was looking to get information on dpi/resolution from the command line; and interestingly, sometimes none of these tools report that in an image (like in the above snippet); for more on that, see I want to change DPI with Imagemagick without changing the actual byte-size of the image data - Super User - however, identify -verbose seems to work for the same image as in the previous snippet:

$ identify -verbose test.png Image: test.png Format: PNG (Portable Network Graphics) Class: DirectClass Geometry: 2490x3424+0+0 Resolution: 72x72 Print size: 34.5833x47.5556 Units: Undefined Type: TrueColor Endianess: Undefined Colorspace: RGB Depth: 8-bit Channel depth: red: 8-bit green: 8-bit blue: 8-bit Channel statistics: Red: min: 8 (0.0313725) max: 255 (1) mean: 237.541 (0.931533) standard deviation: 37.2797 (0.146195) kurtosis: 21.2876 skewness: -4.56853 Green: min: 15 (0.0588235) max: 255 (1) mean: 240.007 (0.941204) standard deviation: 37.8264 (0.148339) kurtosis: 20.7241 skewness: -4.51584 Blue: min: 9 (0.0352941) max: 255 (1) mean: 240.349 (0.942547) standard deviation: 38.7118 (0.151811) kurtosis: 22.255 skewness: -4.72275 Image statistics: Overall: min: 8 (0.0313725) max: 255 (1) mean: 179.474 (0.703821) standard deviation: 108.711 (0.426316) kurtosis: -0.958865 skewness: -0.995795 Rendering intent: Undefined Interlace: None Background color: white Border color: rgb(223,223,223) Matte color: grey74 Transparent color: black Compose: Over Page geometry: 2490x3424+0+0 Dispose: Undefined Iterations: 0 Compression: Zip Orientation: Undefined Properties: date:create: 2014-02-13T13:11:08+01:00 date:modify: 2014-02-13T13:04:52+01:00 signature: bada990d3ba29b311501146d9013d67cf36f667c6d39b1f28a72ce913924397d Artifacts: verbose: true Tainted: False Filesize: 12.52MB Number pixels: 8.526M Pixels per second: 7.894M User time: 1.080u Elapsed time: 0:02.080 Version: ImageMagick 6.6.2-6 2012-08-17 Q16 http://www.imagemagick.org 

... although, it can be a bit tricky to read resolution in units of PixelsPerInch using identify -verbose - see ImageMagick • View topic - Cannot set units to pixelsperinch?.

14
Pierre-Damien
identify -verbose image.png 

идентифицируется из пакета ImageMagick.

Он также извлекает информацию EXIF ​​из изображения JPEG.

7
Scott Chu

Вы можете попробовать эту команду, если приведенные выше ответы не работают:

rdjpgcom -verbose photo.jpg 

Это покажет информацию как:

JPEG изображение 564 Вт * 779h, 3 цветовых компонента, 8 бит на образец

5
Thanh DK

Я только что обнаружил, что less (с lessfile / lesspipe) может отображать информацию об изображении, используя ImageMagick за сценой:

sudo apt-get install imagemagick less wallpaper.jpg 

Выход

wallpaper.jpg JPEG 1920x1200 1920x1200+0+0 8-bit DirectClass 580KB 0.000u 0:00.000 
Это шутка? Я попробовал это, и выскочило предупреждение, спрашивающее меня, действительно ли я хочу прочитать бинарный файл, а затем он просто отобразил кучу бинарных файлов ... (используя Ubuntu 14.04) Hugh Perkins 9 лет назад 0
Вам нужно установить ImageMagick для его работы. Я упоминал, что он использует ImageMagick за сценой, не так ли? Thanh DK 9 лет назад 0
Довольно глупый способ сделать это ... если у вас установлен imageMagick, просто используйте команду identifier. Mike Q 6 лет назад 1
4
lepe

Другой метод, не опубликованный выше, использует feh (вам нужно установить его):

feh -l image.jpg 

Выход:

NUM FORMAT WIDTH HEIGHT PIXELS SIZE(bytes) ALPHA FILENAME 1 jpeg 1280 960 1228800 91319 - image.jpg 

С помощью:

feh -l *.jpg 

Выводит таблицу (как указано выше), но со всей информацией об изображениях (с увеличением столбца NUM). Полезно использовать в скриптах.

2
boehj

Инструмент, который вы хотите file.

Он показывает удивительное количество информации о всех видах файлов.

Синтаксис:

$ file my_pic.jpg

Похожие вопросы