Bagaimana cara mendapatkan informasi tentang suatu citra (gambar) dari Linux command-line?

Saya bekerja pada sebuah web-app, dan saat ini saya migrasi beberapa barang dari sebuah aplikasi lama, tapi aku benci bahwa aku harus membuka editor gambar untuk mendapatkan beberapa info tentang gambar saya migrasi. Hal-hal seperti dimensi gambar.

Ada sebuah tool command-line yang dapat saya gunakan untuk tugas-tugas seperti di Linux?

Larutan

Untuk beberapa format gambar yang anda hanya dapat menggunakan file perintah:

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

Tidak semua format gambar melaporkan ukuran (JPEG terutama doesn't):

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

Untuk orang-orang yang anda akan memiliki untuk menggunakan sesuatu yang lebih rumit, seperti:

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

Tombol convert perintah adalah bagian dari ImageMagick paket.

Komentar (4)

Cara terbaik untuk mendapatkan informasi ini adalah dengan menggunakan mengidentifikasi perintah:

$ identify image.png

atau hanya ukuran atribut

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

Ini adalah bagian dari ImageMagick, yang dapat anda instal pada Ubuntu seperti:

$ sudo apt-get install imagemagick
Komentar (7)

exiv2 adalah "alat" untuk mendapatkan informasi dari file gambar:

~$exiv2 myimage.jpg

output:

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    :
Komentar (0)

mediainfo akan memberikan info yang lebih rinci. Hal ini biasanya dalam standar repos di Linux, dan juga tersedia melalui homebrew pada OSX.

Cobalah misalnya berjalan dalam folder saat ini:

mediainfo *

atau

mediainfo .

Kedua perintah ini akan menampilkan informasi tentang semua media file dalam folder dan subfolder.

Lihat info pada semua gambar JPG mulai dari saat ini folder (termasuk subfolder):

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

Hal ini juga sangat berguna, dengan file audio dan video, yang menunjukkan bitrate semua audio/video streaming, pengkodean algorythm, jenis wadah, FOURCC kode, yaitu XVID, X264, dll.

Ada juga GUI tersedia dalam standar repos untuk semua distro besar biasanya bernama mediainfo-gui

Komentar (0)

Juga, periksa ExifTool oleh Phil Harvey; contoh:

$ 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, saya sedang mencari untuk mendapatkan informasi tentang dpi/resolusi dari baris perintah; dan menariknya, kadang-kadang tidak ada alat-alat ini melaporkan bahwa dalam sebuah gambar (seperti dalam cuplikan di atas); untuk lebih lanjut, lihat saya ingin mengubah DPI dengan Imagemagick tanpa mengubah sebenarnya byte ukuran data gambar - Super User - namun, mengidentifikasi -verbose tampaknya bekerja untuk gambar yang sama seperti sebelumnya snippet:

$ 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

... meskipun, hal ini dapat menjadi sedikit rumit untuk membaca resolusi di unit PixelsPerInch menggunakan mengidentifikasi -verbose - lihat ImageMagick • Melihat topik - Tidak dapat mengatur unit untuk pixelsperinch?.

Komentar (1)
identify -verbose image.png

mengidentifikasi lebih dari ImageMagick paket.

Hal ini juga mengekstrak informasi exif dari gambar jpeg.

Komentar (0)

Anda dapat mencoba perintah ini jika jawaban atas don't bekerja:

rdjpgcom -verbose photo.jpg

Ini akan menunjukkan info seperti:

*JPEG, gambar 564w 779h, 3 komponen warna, 8 bit per sampel**

Komentar (0)

Saya baru saja menemukan bahwa kurang (dengan lessfile/lesspipe) dapat benar-benar menampilkan info gambar dengan menggunakan ImageMagick behind the scene:

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
Komentar (3)

Metode lain tidak diposting di atas, adalah menggunakan feh (anda perlu menginstal ini):

feh -l image.jpg

Output:

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

Menggunakan:

feh -l *.jpg

Akan menampilkan tabel (seperti di atas) tapi dengan semua gambar informasi (incrementing JLH kolom). Berguna untuk digunakan dalam script.

Komentar (0)

Anda dapat menggunakan :

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

Anda juga dapat mengganti file:// dengan http://

Komentar (1)

Jika anda're berurusan dengan Png, mungkin ada atribut yang saya've ditemukan sulit untuk membaca dengan hampir semua perangkat lunak. Bagi mereka, anda harus menggunakan pngmeta:

pngmeta file.png

Yang's sangat berguna untuk thumbnail, karena, menurut FreeDesktop standar, harus berformat PNG dan menyimpan informasi jalan sebagai PNG atribut (Thumb::URI).

Komentar (1)

Alat yang anda inginkan adalah file.

Hal ini menunjukkan jumlah yang mengejutkan info tentang segala macam file.

Sintaksnya adalah:

$ file my_pic.jpg

Komentar (0)