Linuxコマンドラインから画像(画像)に関する情報を取得する方法は?


257

Webアプリに取り組んでおり、現在は古いアプリからいくつかのものを移行していますが、移行している画像に関する情報を取得するために画像エディターを開く必要があるのは嫌です。画像の寸法など。

Linuxでこのようなタスクに使用できるコマンドラインツールはありますか?

回答:


263

一部の画像形式では、file次のコマンドを使用できます。

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

すべての画像形式がサイズを報告するわけではありません(JPEGが最も顕著ではありません)。

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

これらの場合、次のようなより複雑なものを使用する必要があります。

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

このconvertコマンドはImageMagickパッケージの一部です。


7
ちょうど私かもしれませんが、imagemagickは実際にそこに画像データを読み込んでいるようです。芋identify代わりに使用する必要があります
jozxyqk

1
ああ、/dev/null引数笑です
水瓶座パワー

FWIWこれは私が写真の作成日時を取得するために使用したものですidentify -format "%[EXIF:DateTimeOriginal]\n" foobar.jpg
。– kralyk

2
現在のバージョンfile:追加のパラメータを指定せずにJPEGのサイズを表示するサポートしない$ file foo.jpgリターン 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
・クール

199

この情報を取得する最良の方法は、identify次のコマンドを使用することです。

$ identify image.png

またはサイズ属性のみ

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

ImageMagickの一部であり、Ubuntuに次のようにインストールできます。

$ sudo apt-get install imagemagick

1
形式文字列の仕様は、GraphicsMagickマニュアルに記載されています
シェード

10
-verboseフラグを追加します。私は(フィールドの解像度である)DPIを見つけるために必要な
GC5

CentOSの場合:ImageMagickをインストールします
2014

この回答は両方ともjpegで機能し、インストールに必要な情報を提供します。
ヒューパーキンズ

3
@fbrundu DPIは次のような解像度にどのように関係しますか72x72
-Seanny123

27

exiv2は、画像ファイルから情報を取得するための「ツール」です。

~$exiv2 myimage.jpg

出力:

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

mediainfoはさらに詳細な情報を提供します。通常はLinuxの標準リポジトリにあり、OSXのhomebrewでも入手できます。

たとえば、現在のフォルダーで実行してみてください。

mediainfo *

または

mediainfo .

両方のコマンドは、現在のフォルダーとサブフォルダー内のすべてのメディアファイルに関する情報を表示します。

現在のフォルダー(サブフォルダーを含む)から始まるすべてのJPG画像に関する情報を表示します。

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

それは、すべてのオーディオ/ビデオストリーム、エンコーディングalgorythm、コンテナタイプ、FOURCCコード、すなわちのビットレートを示すという点では、また、オーディオおよびビデオファイルと非常に便利であるXVIDX264など、

通常名前が付けられているすべての主要なディストリビューションの標準リポジトリで利用可能なGUIもあります。 mediainfo-gui


19

また、Phil HarveyによるExifToolも確認してください。例:

$ 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

ところで、コマンドラインからdpi /解像度に関する情報を取得しようとしていました。おもしろいことに、これらのツールのいずれも、上記のスニペットのように、画像でそれを報告しない場合があります。詳細については、画像データの実際のバイトサイズを変更せずにImagemagickでDPIを変更する-スーパーユーザー -を参照してください。ただし、identify -verbose前のスニペットと同じ画像で機能するようです。

$ 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

...ただし、PixelsPerInchの単位で解像度を読み取るのは少し難しい場合があります-ImageMagickをidentify -verbose参照してください。•トピックを表示-単位をピクセル/インチに設定できませんか?


Nice:identify -verboseJPG品質を報告する唯一のツールです。例えば、それは言うでしょうQuality: 90
タニウス

15
identify -verbose image.png

識別はImageMagickパッケージからのものです。

また、jpegイメージからexif情報を抽出します。


7

上記の回答が機能しない場合は、このコマンドを試すことができます:

rdjpgcom -verbose photo.jpg

次のような情報が表示されます。

JPEG画像は564w * 779h、3色成分、サンプルあたり8ビット


6

less(lessfile / lesspipeを使用)は、ImageMagickを舞台裏で実際に使用して画像情報を表示できることを発見しました。

sudo apt-get install imagemagick
less wallpaper.jpg

出力

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

これは冗談ですか?これを試してみたところ、バイナリファイルを本当に読みたいかどうかを尋ねる警告が表示され、その後、大量のバイナリが表示されました...(Ubuntu 14.04を使用)
ヒューパーキンズ

動作させるにはImageMagickをインストールする必要があります。私はそれが舞台裏でImageMagickを使用していると言いましたよね?
タンDK

1
それを行うのはかなり馬鹿げた方法です... imageMagickがインストールされている場合は、identifyコマンドを使用してください。
マイクQ

4

上記以外の方法でfehを使用しています(インストールする必要があります)。

feh -l image.jpg

出力:

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

を使用して:

feh -l *.jpg

(上記のように)テーブルを出力しますが、すべての画像情報(NUM列をインクリメント)を出力します。スクリプトで使用すると便利です。


2

必要なツールはですfile

あらゆる種類のファイルに関する驚くべき量の情報が表示されます。

構文は次のとおりです。

$ file my_pic.jpg


2

以下を使用できます。

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

また、あなたは置き換えることができfile://http://


これに便乗して同じことを行うことができますが、コマンドライン引数を使用して少し使いやすくします。 php -r "print_r(getimagesize(\$argv[1]));"
ケビンシュレーダー

2

PNGを扱っている場合、ほとんどすべてのソフトウェアで読むのが難しいと思う属性があるかもしれません。それらの場合、pngmetaを使用する必要があります。

pngmeta file.png

これはサムネイルに特に役立ちます。FreeDesktop標準に従って、PNG形式で、パス情報をPNG属性(Thumb :: URI)として保存する必要があるためです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.