Ответы:
В последних версиях (6.6.9-2, 2011-03-30 и более поздних версиях) "identifive -verbose" выводит IHDR.bit_depth и IHDR.color_type:
определить -verbose g1.png | grep IHDR
png: IHDR.bit_depth: 1
png: IHDR.color_type: 0 (оттенки серого)
или же
определить -verbose png24.png | grep IHDR
png: IHDR.bit_depth: 8
png: IHDR.color_type: 2 (Truecolor)
или же
определить -verbose png64.png | grep IHDR
png: IHDR.bit_depth: 16
png: IHDR.color_type: 6 (RGBA)
Чтобы завершить ответ Кайла, кажется, вы должны использовать что-то вроде этого (протестировано с IM 6.8.4):
#!/bin/sh
type=$(identify -verbose $1 | sed -n "s/^.*png:IHDR.color_type.*(\(.*\))$/\1/p")
case "$type" in
Indexed)
depth=8
;;
Truecolor)
depth=24
;;
RGBA)
depth=32
;;
esac
echo $depth