Frage Wie bekomme ich Informationen über ein Bild (Bild) von der Linux-Befehlszeile?


Ich arbeite gerade an einer Web-App und migriere gerade einige Sachen aus einer alten App, aber ich hasse es, dass ich einen Bild-Editor öffnen muss, um Informationen über Bilder zu erhalten, die ich migriere. Dinge wie Bildmaße.

Gibt es ein Befehlszeilentool, das ich für solche Aufgaben unter Linux verwenden kann?


208
2018-04-26 09:28


Ursprung




Antworten:


Für einige Bildformate können Sie einfach die verwenden file Befehl:

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

Nicht alle Bildformate geben die Größe an (JPEG ist dies am deutlichsten):

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

Für diejenigen, die Sie verwenden müssen, etwas aufwendiger, wie:

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

Das convert Der Befehl ist Teil des ImageMagick-Pakets.


208
2018-04-26 09:40



Könnte nur ich sein, aber es scheint imagemagick lädt tatsächlich Bilddaten dort, da es ziemlich langsam läuft. Imo identify sollte stattdessen verwendet werden - jozxyqk
Oh, /dev/null ist ein Argument hehe - Aquarius Power
FWIW das ist, was ich verwendet habe, um das Erstellungsdatum eines Fotos zu erhalten: identify -format "%[EXIF:DateTimeOriginal]\n" foobar.jpg - kralyk
Aktuelle Version von fileunterstützt die Anzeige der JPEG-Größe ohne zusätzliche Parameter: $ file foo.jpg kehrt zurück foo.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 72x72, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=1], baseline, precision 8, 120x120, frames 3 - Cœur


Der beste Weg, um diese Informationen zu erhalten, ist mit dem identify Befehl:

$ identify image.png

oder nur Größenattribute

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

Es ist Teil von ImageMagick, das Sie auf Ubuntu wie folgt installieren können:

$ sudo apt-get install imagemagick

179
2017-12-23 14:16



Die Spezifikationen für die Formatzeichenfolge finden Sie in der GraphicsMagick Handbuch. - Sjoerd
Ich werde das hinzufügen -verbose Flagge. Ich musste DPI finden (das sind im Bereich Resolution) - gc5
für CentOS tun: yum ImageMagick installieren - tidy
Diese Antwort funktioniert sowohl mit jpegs als auch mit den Informationen, die zur Installation benötigt werden. - Hugh Perkins
@fbrundu Wie verhält sich DPI zu einer Lösung wie? 72x72 - Seanny123


exiv2 ist "das Werkzeug", um Informationen aus Bilddateien zu erhalten:

~$exiv2 myimage.jpg

Ausgänge:

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    :

22
2017-07-25 01:57





Medieninformation würde noch detailliertere Informationen geben. Es ist normalerweise in den Standard-Repos unter Linux und auch über Homebrew unter OSX verfügbar.

Versuchen Sie zum Beispiel, im aktuellen Ordner zu laufen:

mediainfo *

oder

mediainfo .

Beide Befehle zeigen Informationen zu allen Mediendateien im aktuellen Ordner und in den Unterordnern an.

Zeigt Informationen zu allen JPG-Bildern beginnend mit dem aktuellen Ordner an (inklusive Unterordner):

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

Es ist auch sehr nützlich mit Audio- und Videodateien, da es die Bitrate aller Audio / Video-Ströme, Codierungsalgorithmen, Containertyp, FOURCC-Code, d.h. XVID, X264, etc.

Es gibt auch eine GUI in Standard-Repos für alle gängigen Distributionen mediainfo-gui


21
2017-12-23 17:22





identify -verbose image.png

Identifizieren ist aus dem ImageMagick-Paket.

Es extrahiert auch exif Informationen von JPEG-Bild.


14
2017-08-31 08:29





Überprüfen Sie auch ExifTool von Phil Harvey; ein Beispiel:

$ 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

Übrigens, ich wollte Informationen über dpi / Auflösung von der Befehlszeile erhalten; und interessanterweise meldet manchmal keines dieser Werkzeuge das in einem Bild (wie im obigen Ausschnitt); mehr dazu Ich möchte DPI mit Imagemagick ändern, ohne die tatsächliche Byte-Größe der Bilddaten zu ändern - Super User - jedoch, identify -verbose scheint für das gleiche Bild wie im vorherigen Snippet zu funktionieren:

$ 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

... obwohl es manchmal etwas schwierig ist, die Auflösung in PixelsPerInch-Einheiten zu lesen identify -verbose - sehen ImageMagick • Thema anzeigen - Einheiten können nicht auf Pixel pro Inch gesetzt werden?.


12
2018-02-13 12:33





Sie können diesen Befehl versuchen, wenn die obigen Antworten nicht funktionieren:

rdjpgcom -verbose photo.jpg

Es zeigt Informationen wie:

JPEG-Bild ist 564w * 779h, 3 Farbkomponenten, 8 Bits pro Probe


7
2017-10-04 09:53





Ich habe gerade entdeckt, dass weniger (mit weniger Dateien / weniger) Image-Informationen anzeigen kann, indem ImageMagick hinter der Szene verwendet wird:

sudo apt-get install imagemagick
less wallpaper.jpg

Ausgabe

wallpaper.jpg JPEG 1920x1200 1920x1200+0+0 8-bit DirectClass 580KB 0.000u 0:00.000

5
2017-12-20 07:26



Ist das ein Witz? Ich habe es versucht, und es erschien eine Warnung, in der ich gefragt wurde, ob ich wirklich eine Binärdatei lesen möchte, und dann wurde nur eine Reihe von Binärdateien angezeigt (mit Ubuntu 14.04). - Hugh Perkins
Sie müssen ImageMagick installieren, damit es funktioniert. Ich habe erwähnt, dass ImageMagick hinter der Szene verwendet wird, oder? - Thanh DK
Eine ziemlich dumme Art, es zu tun ... Wenn Sie imageMagick installiert haben, benutzen Sie einfach den Befehl identify. - Mike Q