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

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

Ich arbeite an einer Webanwendung und migriere derzeit einige Dinge aus einer alten Anwendung, aber ich hasse es, dass ich einen Bildeditor öffnen muss, um Informationen über Bilder, die ich migriere, zu erhalten. Dinge wie Bilddimensionen.

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

Antworten (12)

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

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

$ 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 vor allem nicht):

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

Für diese müssen Sie etwas Aufwändigeres verwenden, wie:

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

Der Befehl convert ist Teil des ImageMagick-Pakets.

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

Am besten erhalten Sie diese Informationen mit dem Befehl identify:

$ identify image.png

oder nur Größenattribute

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

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

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

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

~$exiv2 myimage.jpg

Ausgaben:

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 würde noch detailliertere Informationen liefern. Es ist normalerweise im Standard-Repository unter Linux und auch über Homebrew unter OSX verfügbar.

Versuchen Sie beispielsweise, im aktuellen Ordner zu laufen:

mediainfo *

oder

mediainfo .

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

Zeigt Informationen über alle JPG-Bilder ab dem aktuellen Ordner (einschließlich Unterordner) an:

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

Es ist auch sehr nützlich bei Audio- und Videodateien, da es die Bitrate aller Audio-/Videoströme, den Kodierungsalgorithmus, den Containertyp, den FOURCC-Code, d.h. XVID, X264, usw. anzeigt.

Es gibt auch eine GUI, die in Standard-Repos für alle größeren Distros verfügbar ist, die üblicherweise mediainfo-gui genannt werden

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

Sehen Sie sich 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 wollte ich Informationen über dpi/Auflösung von der Befehlszeile erhalten; und interessanterweise meldet manchmal keines dieser Tools dies in einem Bild (wie im obigen Snippet); mehr dazu finden Sie unter Ich möchte DPI mit Imagemagick ändern, ohne die tatsächliche Byte-Größe der Bilddaten zu ändern - Super User - allerdings scheint identify -verbose für dasselbe 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 etwas trickreich sein kann, die Auflösung in Einheiten von PixelsPerInch mit identify -verbose auszulesen - siehe ImageMagick - Thema Ansicht - Einheiten nicht auf Pixelsperinch setzen? .

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

identify stammt aus dem ImageMagick-Paket.

Es extrahiert auch Exif-Informationen aus dem jpeg-Bild.

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

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

rdjpgcom -verbose photo.jpg

Er zeigt Informationen an wie:

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

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

Ich habe gerade entdeckt, dass weniger (mit lessfile/lesspipe) tatsächlich Bildinformationen anzeigen können, wenn sie ImageMagick hinter der Szene verwenden:

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
5
5
2013-01-25 04:04:20 +0000

Eine andere Methode, die oben nicht angegeben wurde, verwendet feh (Sie müssen sie installieren):

feh -l image.jpg

Ausgabe:

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

Verwendung:

feh -l *.jpg

Gibt eine Tabelle aus (wie oben), aber mit allen Bildinformationen (Inkrementierung der NUM-Spalte). Nützlich zur Verwendung in Skripten.

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

Sie können :

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

verwenden. Sie können auch file:// durch http:// ersetzen.

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

Wenn Sie mit PNGs zu tun haben, könnte es Attribute geben, die ich bei fast jeder Software nur schwer lesen konnte. Für diese sollten Sie pngmeta:

pngmeta file.png

verwenden. Das ist besonders nützlich für Miniaturansichten, da sie nach dem FreeDesktop-Standard PNG-formatiert sein und Pfadinformationen als PNG-Attribut (Thumb::URI) speichern sollten.

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

Das gewünschte Werkzeug ist file

Es zeigt eine überraschende Menge an Informationen über alle Arten von Dateien.

Die Syntax lautet:

$ file my_pic.jpg