2011-04-26 09:28:39 +0000 2011-04-26 09:28:39 +0000
264
264

Comment obtenir des informations sur une image à partir de la ligne de commande Linux ?

Je travaille sur une application web et je suis en train de migrer des éléments d'une ancienne application, mais je déteste devoir ouvrir un éditeur d'images pour obtenir des informations sur les images que je migre. Des choses comme les dimensions des images.

Y a-t-il un outil en ligne de commande que je puisse utiliser pour de telles tâches sous Linux ?

Réponses (12)

270
270
270
2011-04-26 09:40:37 +0000

Pour certains formats d'image, vous pouvez simplement utiliser la commande file :

$ file MyPNG.png 
MyPNG.png: PNG image, 681 x 345, 8-bit/color RGB, non-interlaced

Tous les formats d'image n'indiquent pas la taille (JPEG notamment) :

$ file MyJpeg.jpg 
MyJpeg.jpg: JPEG image data, JFIF standard 1.01

Pour ceux-là, vous devrez utiliser quelque chose de plus élaboré, comme :

$ convert MyJpeg.jpg -print "Size: %wx%h\n" /dev/null
Size: 380x380

La commande convert fait partie du paquet ImageMagick.

206
206
206
2011-12-23 14:16:38 +0000

La meilleure façon d'obtenir ces informations est d'utiliser la commande identify :

$ identify image.png

ou seulement les attributs de taille

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

Il fait partie d'ImageMagick, que vous pouvez installer sur Ubuntu comme suit :

$ sudo apt-get install imagemagick
30
30
30
2013-07-25 01:57:44 +0000

exiv2 est “l'outil” pour obtenir des informations à partir de fichiers images :

~$exiv2 myimage.jpg

sorties :

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
21
21
2011-12-23 17:22:07 +0000

mediainfo donnerait des informations encore plus détaillées. Il se trouve généralement dans le répertoire standard sous Linux, et est également disponible via le homebrew sous OSX.

Essayez par exemple de l'exécuter dans le dossier actuel :

mediainfo *

ou

mediainfo .

Les deux commandes afficheront des informations sur tous les fichiers multimédia dans le dossier et les sous-dossiers actuels.

Afficher les informations sur toutes les images JPG à partir du dossier courant (y compris les sous-dossiers) :

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

Il est également très utile pour les fichiers audio et vidéo, car il affiche le débit binaire de tous les flux audio/vidéo, l'algorythme d'encodage, le type de conteneur, le code FOURCC, c'est-à-dire XVID, X264, etc.

Il existe également une interface graphique dans les dépôts standard pour toutes les principales distributions, généralement appelée mediainfo-gui

21
21
21
2014-02-13 12:33:36 +0000

Consultez également ExifTool par Phil Harvey ; un exemple :

$ 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

A propos, je cherchais à obtenir des informations sur la résolution en dpi à partir de la ligne de commande ; et il est intéressant de noter que parfois, aucun de ces outils ne signale cela dans une image (comme dans l'extrait ci-dessus) ; pour en savoir plus à ce sujet, voir I want to change DPI with Imagemagick without changing the actual byte-size of the image data - Super User - cependant, identify -verbose semble fonctionner pour la même image que dans l'extrait précédent :

$ 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

. … bien qu'il puisse être un peu délicat de lire la résolution en unités de PixelsPerInch en utilisant identify -verbose - voir ImageMagick - Voir le sujet - Impossible de régler les unités sur pixelsperinch ? .

15
15
15
2012-08-31 08:29:46 +0000
identify -verbose image.png

identifier provient du paquet ImageMagick.

Il extrait également des informations exif de l'image jpeg.

7
7
7
2012-10-04 09:53:14 +0000

Vous pouvez essayer cette commande si les réponses ci-dessus ne fonctionnent pas :

rdjpgcom -verbose photo.jpg

Il affichera des informations comme :

L'image JPEG est 564w * 779h, 3 composantes de couleur, 8 bits par échantillon

6
6
6
2012-12-20 07:26:18 +0000

Je viens de découvrir que moins (avec lessfile/lesspipe) peut en fait afficher des informations sur les images en utilisant ImageMagick en coulisse :

sudo apt-get install imagemagick
less wallpaper.jpg

Output

wallpaper.jpg JPEG 1920x1200 1920x1200+0+0 8-bit DirectClass 580KB 0.000u 0:00.000
5
5
5
2013-01-25 04:04:20 +0000

L'autre méthode, non mentionnée ci-dessus, est l'utilisation de feh (vous devez l'installer) :

feh -l image.jpg

Sortie :

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

Utilisation :

feh -l *.jpg

Sortie d'un tableau (comme ci-dessus) mais avec toutes les informations des images (en incrémentant la colonne NUM). Utile à utiliser dans les scripts.

2
2
2
2013-10-15 18:30:09 +0000

Vous pouvez utiliser :

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

Vous pouvez également remplacer file:// par http://

2
2
2
2013-12-05 09:07:51 +0000

Si vous avez affaire à des PNG, il y a peut-être des attributs que j'ai trouvé difficiles à lire avec presque tous les logiciels. Pour ceux-ci, vous devriez utiliser pngmeta :

pngmeta file.png

C'est particulièrement utile pour les vignettes, puisque, selon la norme FreeDesktop, elles doivent être au format PNG et stocker les informations de chemin d'accès sous forme d'attribut PNG (Thumb::URI).

2
2
2
2011-04-26 09:41:00 +0000

L'outil que vous voulez est file.

Il montre une quantité surprenante d'informations sur toutes sortes de fichiers.

La syntaxe est :

$ file my_pic.jpg