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

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

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

12 Solutions collect form web for “Как получить информацию об изображении (картинке) из командной строки Linux?”

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

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

 $ identify image.png 

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

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

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

 $ sudo apt-get install imagemagick 

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

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

 mediainfo * 

или

 mediainfo . 

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

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

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

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

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

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 : 
 identify -verbose image.png 

Идентифицировать из пакета ImageMagick.

Он также извлекает информацию exif из jpeg-изображения.

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

 rdjpgcom -verbose photo.jpg 

Он будет показывать такую ​​информацию, как:

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

Кроме того, ознакомьтесь с ExifTool от Phil Harvey ; пример:

 $ 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 

Кстати, я искал информацию о dpi / разрешении из командной строки; И интересно, иногда ни один из этих инструментов не сообщает об этом в изображении (как в приведенном выше фрагменте); Для получения дополнительной информации см. Раздел «Я хочу изменить DPI с помощью Imagemagick без изменения фактического размера данных изображения – Super User – однако, identify -verbose похоже, работает для того же изображения, что и в предыдущем фрагменте:

 $ 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 

… хотя, может быть немного сложно читать разрешение в единицах PixelsPerInch, используя identify -verbose – см. ImageMagick • Просмотр темы – Не могу установить единицы в пиксель-переключатель? ,

Я только что обнаружил, что меньше (с 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 

Другой метод, не опубликованный выше, использует 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). Полезно использовать в скриптах.

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

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

Синтаксис:

$ file my_pic.jpg

Вы можете использовать :

 php -r "print_r(getimagesize('file:///archives/Picture/12 farvardin/20120331_013.jpg'));" 

Также вы можете заменить file:// с помощью http://

Если вы имеете дело с PNG, могут быть атрибуты, которые мне трудно читать практически с любого программного обеспечения. Для них вы должны использовать pngmeta:

Pngmeta file.png

Это особенно полезно для эскизов, поскольку, согласно стандарту FreeDesktop, формат PNG должен быть отформатирован и хранить информацию о пути как атрибут PNG (Thumb :: URI).

  • Как просмотреть историю командной строки после закрытия окна в Windows 10?
  • Можно ли добавить ярлык для замены пути в Linux?
  • Можно ли каким-либо образом удалить PowerShell из Vista?
  • Как заставить компьютер спать из меню командной строки / запуска?
  • Как запустить несколько команд в одной строке в Powershell?
  • Как установить путь для команд sudo
  • Открытие текущего каталога в Explorer
  • Как закрыть терминал в OSX из командной строки?
  • Есть ли способ вставить команду в Планировщик задач Windows?
  • Zypper: Как отобразить все пакеты из определенного репозитория?
  • Как запустить пакетный скрипт перед входом в систему?
  • Interesting Posts

    Свойство NSString: скопировать или сохранить?

    Как оживить струйный принтер – частично забитый / высушенный?

    Файл CURL с параметром post

    Как добавить записи в боковую панель «Другие места» проводника Windows?

    CSS-анимация с задержкой для каждого дочернего элемента

    Как добавить программу в список с помощью правой кнопки мыши?

    Должен ли я отключать Wi-Fi на моем ноутбуке, когда подключен кабель Ethernet?

    Как Z3 обрабатывает нелинейную целочисленную арифметику?

    Могу ли я использовать разъемы CAT5e с кабелем CAT6?

    Определение Java Enum

    VBA Macro для сортировки и применения условного форматирования к диапазону ячеек с динамическим числом строк

    Что такое App.config в C # .NET? Как это использовать?

    Видимость по умолчанию для classов и членов C # (поля, методы и т. Д.)?

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

    Преимущества авто в параметрах шаблона в C ++ 17

    Давайте будем гением компьютера.