ระบุรูปแบบ PNG ที่เฉพาะเจาะจง


0

ฉันจะบอกได้อย่างไรว่าควรใช้identifyคำสั่งImagemagick โดยเฉพาะว่า PNG เฉพาะคือ PNG32, PNG24 หรือ PNG8

%zหรือ%[depth]ให้ลึกตัวอย่าง (ไม่ลึกพิกเซล) ซึ่งมักจะเป็น 8 หรือ 16 โดยไม่คำนึงถึงรูปแบบ PNG และ%mหรือรายงานแค่%[magick]PNG

คำตอบ:


1

ในเวอร์ชันล่าสุด (6.6.9-2, ของ 2011-03-30 และใหม่กว่า), เอาต์พุต "ident -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)


มีการแนะนำรุ่นใด
OrangeDog

@OrangeDog ฉันได้เพิ่มคุณสมบัติไปที่ IM เวอร์ชัน 6.6.9-2, 2011-03-30
Glenn Randers-Pehrson

2

เพื่อให้คำตอบของ Kyle สมบูรณ์คุณต้องใช้สิ่งนี้ (ทดสอบด้วย 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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.