PNGファイルはありますが、PNG-8とPNG-24のどちらなのかわかりませんか?
他の回答で使用されるfile
コマンドは、一貫性がない場合があります。例えば:
───────────────────────────────────────────────────────────────────────────────
rick@Dell:~/Pictures$ file "256 colors.jpg"
256 colors.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, baseline, precision 8, 800x800, frames 3
───────────────────────────────────────────────────────────────────────────────
rick@Dell:~/Pictures$ file "vnStat.png"
vnStat.png: PNG image data, 410 x 121, 8-bit/color RGB, non-interlaced
最初のインスタンスはおそらくカメラの写真であり、2番目のインスタンスはスクリーンキャプチャを使用して撮影したものです。
私の答えのベースとなっているidentify
コマンドは、すべてのインスタンスで正しく機能するようです。たとえば、上記の最初のインスタンスでテストする場合:
rick@Dell:~/Pictures$ identify "256 colors.jpg"
256 colors.jpg JPEG 800x800 800x800+0+0 8-bit sRGB 45KB 0.000u 0:00.000
ImageMagick がインストールされているため、使用できます。
$ identify -verbose vnStat.png
Image: vnStat.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: DirectClass
Geometry: 410x121+0+0
Units: Undefined
Type: TrueColor
Endianess: Undefined
Colorspace: sRGB
Depth: 8-bit
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Channel statistics:
Pixels: 49610
Red:
min: 0 (0)
max: 255 (1)
mean: 12.0814 (0.0473779)
standard deviation: 46.7032 (0.18315)
kurtosis: 18.8998
skewness: 4.49862
Green:
min: 0 (0)
max: 255 (1)
mean: 21.1804 (0.0830606)
standard deviation: 57.5336 (0.225622)
kurtosis: 6.68226
skewness: 2.82613
Blue:
min: 0 (0)
max: 255 (1)
mean: 14.2606 (0.0559237)
standard deviation: 50.2969 (0.197243)
kurtosis: 13.5573
skewness: 3.85914
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 15.8408 (0.0621207)
standard deviation: 51.7078 (0.202776)
kurtosis: 11.8528
skewness: 3.62638
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Background color: white
Border color: srgb(223,223,223)
Matte color: grey74
Transparent color: black
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 410x121+0+0
Dispose: Undefined
Iterations: 0
Compression: Zip
Orientation: Undefined
Properties:
date:create: 2017-01-24T20:04:50-07:00
date:modify: 2017-01-24T20:04:50-07:00
png:IHDR.bit-depth-orig: 8
png:IHDR.bit_depth: 8
png:IHDR.color-type-orig: 2
png:IHDR.color_type: 2 (Truecolor)
png:IHDR.interlace_method: 0 (Not interlaced)
png:IHDR.width,height: 410, 121
png:sRGB: intent=0 (Perceptual Intent)
png:text: 1 tEXt/zTXt/iTXt chunks were found
signature: e9f31b79da6ce46cdea5da21ae8648496faa181b0621098aa2dbbdff4a9a4502
Software: gnome-screenshot
Artifacts:
filename: vnStat.png
verbose: true
Tainted: False
Filesize: 14.7KB
Number pixels: 49.6K
Pixels per second: 0B
User time: 0.000u
Elapsed time: 0:01.000
Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-07-31 http://www.imagemagick.org
要約レポートの場合、すべてのパラメーターを省略します。
$ identify vnStat.png
vnStat.png PNG 410x121 410x121+0+0 8-bit sRGB 14.7KB 0.000u 0:00.000
vnStat.png
を独自の.png
ファイル名に置き換え、必要に応じてパスを先頭に付けます。
PNG-24とPNG-32を理解するために、 SuperUser からのこの回答はそれを要約しています:
画像が24ビットの場合、以下が表示されます。
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
PNG画像が32ビットの場合、以下が表示されます。
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
alpha: 8-bit
ただし、8ビットカラーは赤、緑、青の8ビットも表示するため、この答えは完全ではありません。選択の数を制限するためにカラーパレットのみが使用されます(古き良きWindows 2.0のように)。
Wikipedia Depth Article :からこれらの3つの写真を調べます。
ファイル名:8_bit.png
を使用して:
identify -verbose 8_bit.png | grep colors
png:PLTE.number_colors: 249
249色が使用されています。 8ビットで可能な最大値は256色です。
ファイル名:4_bit.png
を使用して:
identify -verbose 4_bit.png | grep colors
png:PLTE.number_colors: 16
4ビットで可能な最大の色の組み合わせである16色が使用されています。
ファイル名:2_bit.png
を使用して:
$ identify -verbose 2_bit.png | grep colors
png:PLTE.number_colors: 4
2ビットで可能な最大の色の組み合わせである4色が使用されていることがわかります。
32ビットPNG(チャネルごとに8ビット-アルファ付き、「8ビットのアルファ付き24ビットPNG」または「アルファ付きPNG24」とも呼ばれる):
$ file zyne_zyne.png:
PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
24ビットPNG(チャネルごとに8ビット-アルファチャネルなし)
$ file 24.png
PNG image data, 1060 x 821, 8-bit/color RGB, non-interlaced
8ビットPNG(256色):
$ file 8bit.png
PNG image data, 1060 x 821, 8-bit colormap, non-interlaced
exiftoolがインストールされている場合、以下を実行できます。
bash-4.3#exiftool continents_blank_l.png ExifToolバージョン番号:10.20 ファイル名:continents_blank_l.png ディレクトリ:。 ファイルサイズ: 170 kB ファイル変更日時:2016:07:05 07:59:28 + 05:30 ファイルアクセス日時:2017:08:07 00:35:15 + 05 :30 ファイルiノード変更日時:2016:07:05 07:59:28 + 05:30 ファイル許可:rw-r--r- ファイルタイプ:PNG ファイルタイプ拡張子:png MIMEタイプ:image/png 画像幅:1100 画像高さ:850 ビット深度:8 色の種類:アルファを含むRGB 圧縮:収縮/膨張 フィルター:適応 インターレース:ノンインターレース 背景色:255 255 255 Pixels Per Unit X:3937 Pixels Per Unit Y:3937 Pixel Units:meter Modify Date:2016:07:05 02:29:28 画像サイズ:1100x850 メガピクセル:0.935
ハッカーの方法: IHDR PNGチャンク 内の実際のバイトを覗きます。
$ od -j 24 -N 2 -t u1 -An drivemount-applet_open.png
8 2
最初の数字はビット深度を示します。 2番目の 色の種類 (2はRGB画像、つまり3つのチャネルを持つ画像、またはピクセルあたり3つのサンプル値)です。
したがって、この場合、RGB8 PNG(ピクセルあたり24ビット)があります。
PNGファイルのヘッダーでファイルマジックに依存する上記の「ファイル」の使用の代替として、PNGファイルで作業する場合、「pngtools」パッケージをインストールしておくと便利です。
pnginfoを使用して、BitDepth(ビット/サンプル)(別のプロパティPixel Depthと混同しないでください)を含むPNGファイルのプロパティの詳細を提供できます。
file Debian_Expo.png
Debian_Expo.png: PNG image data, 1280 x 1024, 8-bit/color RGB, non-interlaced
---
pnginfo Debian_Expo.png
Image Width: 1280 Image Length: 1024
Bitdepth (Bits/Sample): 8
Channels (Samples/Pixel): 3
Pixel depth (Pixel Depth): 24
Colour Type (Photometric Interpretation): RGB
...
JPEGファイルに相当するものは、独自のパッケージjpeginfoにあるjpeginfoです。
Pnginfoの出力の形式により、シェルスクリプトで使用されている場合、BitDepthの値を抽出するのが簡単になります(別の行にあるため)。
ファイルが実際にPNGファイルではない場合、たとえばJPEGの名前が間違っている場合、pnginfoは「このファイルは有効なPNGファイルではありません」と報告します。
いつものように、ジョブに適切なツールは、とりわけ、ツールを使用する頻度と出力の処理方法によって決定されます。