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

Hoe krijg ik informatie over een afbeelding (foto) van de Linux command-line?

Werk aan een web-app, en ben momenteel wat dingen aan het migreren van een oude app, maar ik haat het dat ik een image-editor moet openen om wat informatie te krijgen over de afbeeldingen die ik aan het migreren ben. Dingen zoals afmetingen van afbeeldingen.

Is er een command-line tool die ik kan gebruiken voor dergelijke taken in Linux?

Antwoorden (12)

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

Voor sommige beeldformaten kun je gewoon het file commando gebruiken:

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

Niet alle beeldformaten rapporteren het formaat (JPEG in het bijzonder niet):

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

Voor degenen die je iets uitgebreider zult moeten gebruiken, zoals:

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

Het convert commando is onderdeel van het ImageMagick pakket.

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

De beste manier om deze informatie te verkrijgen is door gebruik te maken van het identify commando:

$ identify image.png

** of alleen grootte-atributen**

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

Het maakt deel uit van ImageMagick, dat je op Ubuntu kunt installeren zoals:

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

exiv2 is “het gereedschap” om informatie uit beeldbestanden te halen:

~$exiv2 myimage.jpg

uitgangen:

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 (https://mediaarea.net/en/MediaInfo) zou nog meer gedetailleerde informatie geven. Het staat meestal in de standaard repos op Linux, en is ook beschikbaar via homebrew op OSX.

Probeer bijvoorbeeld te draaien in de huidige map:

mediainfo *

of

mediainfo .

Beide commando’s tonen informatie over alle mediabestanden in de huidige map en submappen.

Toon informatie over alle JPG afbeeldingen die beginnen in de huidige map (inclusief submappen):

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

Het is ook zeer nuttig met audio- en videobestanden, in die zin dat het de bitsnelheid van alle audio/video streams, coderingsalgoritme, containertype, FOURCC code, d.w.z. XVID, X264, enz. toont.

Er is ook een GUI beschikbaar in standaard repos voor alle grote distro’s die gewoonlijk mediainfo-gui heten.

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

Bekijk ook ExifTool van Phil Harvey ; een voorbeeld: $ 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

Btw, ik was op zoek naar informatie over dpi/resolutie vanaf de opdrachtregel; en interessant is dat soms geen van deze tools melden dat in een afbeelding (zoals in het bovenstaande fragment); voor meer hierover, zie Ik wil DPI wijzigen met Imagemagick zonder de werkelijke byte-grootte van de beeldgegevens te wijzigen - Super User - echter, identify -verbose lijkt te werken voor dezelfde afbeelding als in het vorige fragment:

$ 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

. … hoewel het een beetje lastig kan zijn om de resolutie in eenheden van PixelsPerInch te lezen met behulp van identify -verbose - zie ImageMagick - View topic - Cannot set units to pixelsperinch? .

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

identificeren komt uit het ImageMagick pakket.

Het haalt ook exif informatie uit het jpeg-beeld.

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

Je kunt dit commando uitproberen als bovenstaande antwoorden niet werken:

rdjpgcom -verbose photo.jpg

Het toont info als:

JPEG beeld is 564w * 779h, 3 kleurcomponenten, 8 bits per sample

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

Ik heb net ontdekt dat minder (met lessfile/lesspipe) daadwerkelijk beeldinformatie kan weergeven door gebruik te maken van ImageMagick achter de schermen:

sudo apt-get install imagemagick
less wallpaper.jpg
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

Andere methode die hierboven niet is gepost, is het gebruik van feh (je moet het installeren):

feh -l image.jpg

Uitgang:

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

Met behulp van:

feh -l *.jpg

Zal een tabel (zoals hierboven), maar met alle afbeeldingen informatie (het verhogen van de NUM-kolom). Handig om te gebruiken in scripts.

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

U kunt gebruik maken van :

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

Ook kunt u file:// vervangen door http://

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

Als je te maken hebt met PNG’s, kunnen er attributen zijn die ik met bijna alle software moeilijk te lezen heb gevonden. Daarvoor moet je pngmeta:

pngmeta file.png

gebruiken. Dat is vooral handig voor thumbnails, omdat, volgens de FreeDesktop standaard, PNG geformatteerd moet zijn en padinformatie moet opslaan als een PNG attribuut (Thumb::URI).

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

Het gereedschap dat je wilt is file.

Het toont een verrassende hoeveelheid informatie over allerlei soorten bestanden.

De syntaxis is:

$ file my_pic.jpg