Wie erhalte ich Informationen zu einem Image (Bild) von der Linux-Befehlszeile?

205166
nemesisfixx

Ich arbeite an einer Web-App und migriere derzeit ein paar Sachen von einer alten App, aber ich hasse es, dass ich einen Bildeditor ö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 in Linux verwenden kann?

223

12 Antworten auf die Frage

220
Majenko

Für einige Bildformate können Sie einfach den fileBefehl 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 am meisten nicht):

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

Für diese müssen Sie etwas aufwendigeres verwenden, wie:

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

Der convertBefehl ist Teil des ImageMagick-Pakets.

Könnte einfach nur ich sein, aber es scheint, als würde imagemagick tatsächlich Bilddaten dort laden, da es ziemlich langsam läuft. stattdessen sollte "ido" verwendet werden jozxyqk vor 10 Jahren 5
oh, `/ dev / null` ist ein Argument, hehe Aquarius Power vor 9 Jahren 1
FWIW Dies ist, was ich verwendet habe, um die Erstellungszeit eines Fotos zu erhalten: `Identify -format"% [EXIF: DateTimeOriginal] \ n "foobar.jpg" kralyk vor 8 Jahren 0
Die aktuelle Version von `file` unterstützt die Anzeige der Größe von JPEG ohne zusätzliche Parameter:` $ file foo.jpg` gibt `foo.jpg zurück: JPEG-Bilddaten, JFIF-Standard 1,01, Seitenverhältnis, Dichte 72x72, Segmentlänge 16, Exif-Standard : [TIFF-Bilddaten, Big-Endian, Direntries = 1], Basislinie, Genauigkeit 8, 120x120, Rahmen 3` Cœur vor 7 Jahren 0
188
Ielton

Am besten erhalten Sie diese Informationen mit dem identifyBefehl:

$ identify image.png 

oder nur Größenattribute

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

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

$ sudo apt-get install imagemagick 
Die Spezifikationen für die Formatzeichenfolge finden Sie im [GraphicsMagick-Handbuch] (http://www.graphicsmagick.org/GraphicsMagick.html#details-format). Sjoerd vor 11 Jahren 1
Ich werde die "-verbose" -Flagge hinzufügen. Ich musste DPI finden (das ist im Feld Auflösung) gc5 vor 10 Jahren 9
für CentOS do: yum installiere ImageMagick tidy vor 10 Jahren 0
Diese Antwort funktioniert sowohl mit JPEG-Dateien als auch mit den Informationen, die für die Installation erforderlich sind. Hugh Perkins vor 9 Jahren 0
+1 für die Option '-format'. Ich brauchte nur die Höhe einer Reihe von Bildern, das ist großartig. tremby vor 9 Jahren 0
@fbrundu In welcher Beziehung steht DPI zu einer Auflösung wie "72x72"? Seanny123 vor 8 Jahren 2
24
Antonio Molinaro

exiv2 ist das "Werkzeug", um Informationen aus Bilddateien abzurufen:

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

mediainfo would give even more detailed info. It is usually in the standard repos on Linux, and also available via homebrew on OSX.

Try for example running in the current folder:

mediainfo * 

or

mediainfo . 

Both commands will show info on all media files in the current folder and subfolders.

Show info on all JPG images starting from current folder (includes subfolders):

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

It is also very useful with audio and video files, in that it shows the bitrate of all audio/video streams, encoding algorythm, container type, FOURCC code, i.e. XVID, X264, etc.

There is also a GUI available in standard repos for all major distros usually named mediainfo-gui

15
sdaau

Schauen Sie sich auch das ExifTool von Phil Harvey an . 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 Kommandozeile erhalten; und interessanterweise berichtet manchmal keines dieser Werkzeuge das in einem Bild (wie im obigen Ausschnitt); Weitere Informationen hierzu finden Sie unter Ich möchte DPI mit Imagemagick ändern, ohne die tatsächliche Byte-Größe der Bilddaten zu ändern - Super User - identify -verbosescheint jedoch für das gleiche Bild wie im vorherigen Ausschnitt 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 schwierig sein kann, die Auflösung in Einheiten von PixelsPerInch mithilfe von ImageMagick zu lesen. • Thema anzeigen identify -verbose- Einheiten können nicht auf Pixelperinch festgelegt werden. .

14
Pierre-Damien
identify -verbose image.png 

Identifizieren ist aus dem ImageMagick-Paket.

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

7
Scott Chu

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

rdjpgcom -verbose photo.jpg 

Es werden Informationen angezeigt wie:

JPEG-Bild ist 564 W * 779h, 3 Farbkomponenten, 8 Bit pro Probe

5
Thanh DK

Ich habe gerade entdeckt, dass weniger (mit lessfile / lesspipe) Bildinformationen tatsächlich anzeigen kann, indem ImageMagick hinter den Kulissen 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 
Ist das ein Witz? Ich habe dies versucht, und es wurde eine Warnung angezeigt, 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 vor 9 Jahren 0
Sie müssen ImageMagick installieren, damit es funktioniert. Ich habe erwähnt, dass ImageMagick hinter den Kulissen verwendet wird, nicht wahr? Thanh DK vor 9 Jahren 0
Das ist eine ziemlich dumme Methode ... wenn Sie imageMagick installiert haben, verwenden Sie einfach den Befehl "Befehl". Mike Q vor 6 Jahren 1
4
lepe

Eine andere Methode, die oben nicht veröffentlicht wurde, ist die Verwendung von feh (Sie müssen es installieren):

feh -l image.jpg 

Ausgabe:

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

Mit:

feh -l *.jpg 

Gibt eine Tabelle aus (wie oben), jedoch mit allen Bildinformationen (Erhöhen der NUM-Spalte). Nützlich für die Verwendung in Skripten.

2
boehj

Das Werkzeug, das Sie wollen, ist file.

Es zeigt überraschend viele Informationen über alle Arten von Dateien.

Die Syntax lautet:

$ file my_pic.jpg