Jawaban:
The file
menggunakan perintah dalam jawaban lainnya kadang-kadang tidak konsisten. Sebagai contoh:
───────────────────────────────────────────────────────────────────────────────
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
Contoh pertama adalah kemungkinan gambar kamera dan contoh kedua saya ambil menggunakan tangkapan layar.
The identify
perintah, yang jawaban saya didasarkan pada, muncul untuk bekerja dengan benar dalam semua kasus. Misalnya pengujian pada instance pertama di atas:
rick@dell:~/Pictures$ identify "256 colors.jpg"
256 colors.jpg JPEG 800x800 800x800+0+0 8-bit sRGB 45KB 0.000u 0:00.000
Saya telah menginstal ImageMagick yang memungkinkan saya untuk menggunakan:
$ 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
Untuk laporan ringkasan, hapus semua parameter:
$ identify vnStat.png
vnStat.png PNG 410x121 410x121+0+0 8-bit sRGB 14.7KB 0.000u 0:00.000
Ganti vnStat.png
dengan .png
nama file Anda sendiri dan awali dengan path jika perlu.
Untuk memahami PNG-24 vs PNG-32, jawaban dari SuperUser ini merangkum:
Jika gambar Anda 24 bit Anda akan melihat:
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Jika gambar PNG Anda 32 bit, Anda akan melihat:
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
alpha: 8-bit
Namun jawaban ini tidak lengkap karena warna 8-bit juga menunjukkan 8 bit untuk Merah, Hijau dan Biru, hanya palet warna yang digunakan untuk membatasi jumlah pilihan (seperti pada Windows 2.0 tua yang baik).
Periksa ketiga gambar ini dari Artikel Kedalaman Wikipedia :
Nama file: 8_bit.png
Menggunakan:
identify -verbose 8_bit.png | grep colors
png:PLTE.number_colors: 249
Kami melihat ada 249 warna yang digunakan. Maksimal mungkin dengan 8 bit adalah 256 warna.
Nama file: 4_bit.png
Menggunakan:
identify -verbose 4_bit.png | grep colors
png:PLTE.number_colors: 16
Kami melihat ada 16 warna yang digunakan yang merupakan kombinasi warna maksimum yang dimungkinkan dengan 4 bit.
Nama file: 2_bit.png
Menggunakan:
$ identify -verbose 2_bit.png | grep colors
png:PLTE.number_colors: 4
Kami melihat ada 4 warna yang digunakan yang merupakan kombinasi warna maksimum yang dimungkinkan dengan 2 bit.
PNG 32-bit (8 bit per saluran - w / alpha, juga disebut "PNG 24-bit dengan 8-bit alpha" atau "PNG24 dengan alpha"):
$ file zyne_zyne.png:
PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
PNG 24-bit (8 bit per saluran - tidak ada saluran alfa)
$ file 24.png
PNG image data, 1060 x 821, 8-bit/color RGB, non-interlaced
PNG 8-bit (256 warna):
$ file 8bit.png
PNG image data, 1060 x 821, 8-bit colormap, non-interlaced
file
adalah alat identifikasi file utama saya dan saya selalu kagum pada berapa banyak yang dapat diceritakan bahkan tentang format file yang eksotis. Memang, implementasinya tumbuh sedikit sejak tahun 80-an :)
Jika Anda telah menginstal exiftool , Anda dapat melakukan:
bash-4.3 # exiftool continents_blank_l.png Nomor Versi ExifTool: 10.20 Nama File: continents_blank_l.png Direktori : . Ukuran File: 170 kB Modifikasi File Tanggal / Waktu: 2016: 07: 05 07: 59: 28 + 05: 30 Tanggal / Waktu Akses File: 2017: 08: 00 00: 35: 15 + 05: 30 Perubahan Nama File Tanggal / Waktu: 2016: 07: 05 07: 59: 28 + 05: 30 Izin File: rw-r - r-- Jenis File: PNG Ekstensi Jenis File: png Jenis MIME: image / png Lebar Gambar: 1100 Tinggi Gambar: 850 Kedalaman Bit: 8 Jenis Warna: RGB dengan Alpha Kompresi: Mengempis / Mengembang Filter: Adaptif Jalin: Noninterlaced Warna Latar Belakang: 255 255 255 Piksel Per Unit X: 3937 Piksel Per Unit Y: 3937 Unit Pixel: meter Ubah Tanggal: 2016: 07: 05 02:29:28 Ukuran Gambar: 1100x850 Megapiksel: 0,935
Cara hacker: mengintip ke byte nyata di dalam IHDR PNG chunk .
$ od -j 24 -N 2 -t u1 -An drivemount-applet_open.png
8 2
Angka pertama memberitahu Anda bitdepth. Yang kedua, jenis warna (2 untuk gambar RGB, yaitu, gambar dengan tiga saluran, atau tiga nilai sampel per piksel).
Karenanya, dalam hal ini kami memiliki RGB8 PNG (24 bit per piksel).
Sebagai alternatif untuk penggunaan "file" di atas yang mengandalkan sihir file di header file PNG, jika bekerja dengan file PNG, paket " pngtools " perlu diinstal.
pnginfo kemudian dapat digunakan untuk memberikan detail lengkap dari properti file PNG termasuk BitDepth (Bit / Sampel) (yang tidak boleh dikacaukan dengan properti lain, Pixel Depth).
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
...
Setara dengan file JPEG adalah jpeginfo, dalam paketnya sendiri jpeginfo.
Format output pnginfo membuatnya lebih mudah untuk mengekstraksi nilai BitDepth (seperti pada baris terpisah) jika sedang digunakan dalam skrip shell.
Jika file tersebut sebenarnya bukan file PNG, karena mis. File tersebut adalah JPEG yang salah nama, maka pnginfo akan melaporkan "File ini bukan file PNG yang valid".
Seperti biasa, alat yang sesuai untuk pekerjaan ditentukan, antara lain, seberapa sering Anda akan menggunakan alat itu dan bagaimana Anda ingin memproses hasilnya.
identify -format %z
- lihat opsi-format ImageMagick untuk lebih lanjut.