Antworten:
Die file
Verwendung von Befehlen in anderen Antworten ist manchmal inkonsistent. Beispielsweise:
───────────────────────────────────────────────────────────────────────────────
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
Die erste Instanz ist wahrscheinlich ein Kamerabild und die zweite Instanz habe ich mit einem Screenshot aufgenommen.
Der identify
Befehl, auf dem meine Antwort basiert, scheint in allen Fällen korrekt zu funktionieren. Zum Beispiel Testen in der ersten Instanz oben:
rick@dell:~/Pictures$ identify "256 colors.jpg"
256 colors.jpg JPEG 800x800 800x800+0+0 8-bit sRGB 45KB 0.000u 0:00.000
Ich habe ImageMagick installiert, mit dem ich Folgendes verwenden kann:
$ 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
Für einen zusammenfassenden Bericht lassen Sie alle Parameter weg:
$ identify vnStat.png
vnStat.png PNG 410x121 410x121+0+0 8-bit sRGB 14.7KB 0.000u 0:00.000
Ersetzen Sie diese vnStat.png
durch Ihren eigenen .png
Dateinamen und geben Sie gegebenenfalls den Pfad ein.
Um PNG-24 und PNG-32 zu verstehen, fasst diese Antwort von SuperUser Folgendes zusammen:
Wenn Ihr Bild 24 Bit ist, werden Sie sehen:
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Wenn Ihr PNG-Bild 32-Bit ist, werden Sie sehen:
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
alpha: 8-bit
Diese Antwort ist jedoch nicht vollständig, da 8-Bit-Farben auch 8-Bit-Farben für Rot, Grün und Blau enthalten. Es wird nur eine Farbpalette verwendet, um die Anzahl der Auswahlen zu begrenzen (wie in guten alten Windows 2.0-Versionen).
Untersuchen Sie diese drei Bilder aus Wikipedia Tiefe Artikel :
Dateiname: 8_bit.png
Verwenden von:
identify -verbose 8_bit.png | grep colors
png:PLTE.number_colors: 249
Wir sehen, dass 249 Farben verwendet werden. Mit 8 Bit sind maximal 256 Farben möglich.
Dateiname: 4_bit.png
Verwenden von:
identify -verbose 4_bit.png | grep colors
png:PLTE.number_colors: 16
Wir sehen, dass 16 Farben verwendet werden. Dies ist die maximale Farbkombination, die mit 4 Bits möglich ist.
Dateiname: 2_bit.png
Verwenden von:
$ identify -verbose 2_bit.png | grep colors
png:PLTE.number_colors: 4
Wir sehen, dass 4 Farben verwendet werden. Dies ist die maximale Farbkombination, die mit 2 Bits möglich ist.
32-Bit-PNG (8 Bit pro Kanal - mit Alpha, auch als "24-Bit-PNG mit 8-Bit-Alpha" oder "PNG24 mit Alpha" bezeichnet):
$ file zyne_zyne.png:
PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
24-Bit-PNG (8 Bit pro Kanal - kein Alphakanal)
$ file 24.png
PNG image data, 1060 x 821, 8-bit/color RGB, non-interlaced
8-Bit-PNG (256 Farben):
$ file 8bit.png
PNG image data, 1060 x 821, 8-bit colormap, non-interlaced
file
ist mein primäres Tool zur Identifizierung von Dateien und ich bin immer wieder erstaunt, wie viel es selbst über exotische Dateiformate aussagt. Zugegeben, seine Implementierung ist seit den 80ern ziemlich
Wenn Sie exiftool installiert haben, können Sie Folgendes tun:
bash-4.3 # exiftool continents_blank_l.png ExifTool-Versionsnummer: 10.20 Dateiname: continents_blank_l.png Verzeichnis : . Dateigröße: 170 kB Änderungsdatum / -zeit der Datei: 2016: 07: 05 07: 59: 28 + 05: 30 Datum / Uhrzeit des Dateizugriffs: 2017: 08: 07 00: 35: 15 + 05: 30 Dateieingabe Änderungsdatum / -zeit: 2016: 07: 05 07: 59: 28 + 05: 30 Dateiberechtigungen: rw-r - r-- Dateityp: PNG Dateierweiterung: png MIME-Typ: image / png Bildbreite: 1100 Bildhöhe: 850 Bittiefe: 8 Farbtyp: RGB mit Alpha Kompression: Luft ablassen / aufblasen Filter: Adaptiv Interlace: Nicht interlaced Hintergrundfarbe: 255 255 255 Pixel pro Einheit X: 3937 Pixel pro Einheit Y: 3937 Pixeleinheiten: Meter Änderungsdatum: 2016: 07: 05 02:29:28 Bildgröße: 1100 x 850 Megapixel: 0,935
Der Weg des Hackers: Werfen Sie einen Blick in die echten Bytes im PNG-Block des IHDR .
$ od -j 24 -N 2 -t u1 -An drivemount-applet_open.png
8 2
Die erste Zahl gibt die Bittiefe an. Der zweite ist der Farbtyp (2 für RGB-Bilder, dh Bilder mit drei Kanälen oder drei Abtastwerten pro Pixel).
In diesem Fall haben wir also ein RGB8 PNG (24 Bit pro Pixel).
Wenn Sie mit PNG-Dateien arbeiten, ist es hilfreich, das Paket " pngtools " installiert zu haben.
pnginfo kann dann verwendet werden, um alle Details der Eigenschaften der PNG-Datei anzugeben, einschließlich der BitDepth (Bits / Sample) (die nicht mit einer anderen Eigenschaft, Pixel Depth, verwechselt werden dürfen).
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
...
Das Äquivalent für JPEG-Dateien ist jpeginfo in seinem eigenen Paket jpeginfo.
Das Format der Ausgabe von pnginfo erleichtert das Extrahieren des Werts von BitDepth (wie in einer separaten Zeile), wenn es in einem Shell-Skript verwendet wird.
Sollte es sich bei der Datei nicht um eine PNG-Datei handeln, da es sich beispielsweise um eine falsch benannte JPEG-Datei handelt, meldet pnginfo "Diese Datei ist keine gültige PNG-Datei".
Wie immer wird das geeignete Tool für den Job unter anderem dadurch bestimmt, wie oft Sie das Tool verwenden und wie Sie die Ausgabe verarbeiten möchten.
identify -format %z
unter ImageMagick-Formatoptionen .