ウェブアプリに取り組んでいて、現在は古いアプリからいくつかのものを移行していますが、移行する画像に関する情報を取得するには画像エディタを開く必要があることが嫌いです。画像の大きさのようなもの。
Linuxでこのような作業に使用できるコマンドラインツールはありますか。
画像フォーマットによっては、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パッケージの一部です。
この情報を取得する最善の方法は、identify
コマンドを使用することです。
$ identify image.png
またはサイズ属性のみ
$ identify -format "%wx%h" photo.jpg
これはImageMagickの一部であり、Ubuntuに次のようにインストールできます。
$ Sudo apt-get install imagemagick
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 :
mediainfo はさらに詳細な情報を提供します。通常Linux上の標準リポジトリにあり、OSX上の自作でも入手可能です。
たとえば、現在のフォルダで実行してみてください。
mediainfo *
または
mediainfo .
どちらのコマンドでも、現在のフォルダとサブフォルダ内のすべてのメディアファイルに関する情報が表示されます。
現在のフォルダ(サブフォルダを含む)から始まるすべてのJPG画像に関する情報を表示します。
find . -iname "*.jpg" -exec mediainfo {} \;
それは、すべてのオーディオ/ビデオストリームのビットレート、エンコードアルゴリズム、コンテナタイプ、FOURCCコード、すなわちXVID
、X264
などを示すという点で、オーディオおよびビデオファイルにも非常に便利です。
通常mediainfo-gui
という名前のすべての主要ディストリビューション用の標準レポジトリで利用可能なGUIもあります。
また、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を変更したい - Super User - ただし、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
... identify -verbose
を使用してPixelsPerInchの単位で解像度を読み取るのは少し面倒かもしれません - ImageMagickを参照してください - トピックを表示 - 単位をpixelsperinchに設定できませんか? 。
identify -verbose image.png
識別はImageMagickパッケージからです。
また、JPEG画像からexif情報を抽出します。
上記の答えがうまくいかない場合は、このコマンドを試すことができます。
rdjpgcom -verbose photo.jpg
以下のような情報が表示されます。
JPEG画像は564w * 779h、3色成分、1サンプルあたり8ビット
私はちょうど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
上記以外の方法では、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列を増やしながら)すべての画像情報を出力します。スクリプトで使用するのに便利です。
あなたが望むツールはfile
です。
あらゆる種類のファイルに関する驚くべき量の情報が表示されます。
構文は次のとおりです。
$ file my_pic.jpg
あなたが使用することができます:
php -r "print_r(getimagesize('file:///archives/Picture/12 farvardin/20120331_013.jpg'));"
file://
をhttp://
に置き換えることもできます
PNGを扱っているのなら、ほとんどのソフトウェアでは読みにくい属性があるかもしれません。それらのために、あなたはpngmetaを使うべきです:
pngmeta file.png
FreeDesktop規格によれば、PNGフォーマットであり、パス情報をPNG属性として保存する必要があるため(Thumb :: URI)、これはサムネイルに特に役立ちます。