如何确定XPM(X PixMap)图像格式的每通道位数?
如何确定XPM(X PixMap)图像格式的每通道位数?
嘿,这个问题戳中了XPM格式的一个小“盲区”——没错,XPM的规范里确实没有专门的字段来明确标注每通道的位数或者总颜色深度,这也是它和其他更现代图像格式不一样的地方。
不过别担心,我们还是有可靠的方法来判断的,核心就是看颜色定义里的十六进制值长度:
- 如果颜色是6位十六进制(比如
#FFFFFF),那就是每通道8位(RGB各占2位十六进制,对应0-FF的范围,也就是8位),总颜色深度24位; - 如果是12位十六进制(就像你例子里的
#FFFFFFFFFFFF),那就是每通道16位(RGB各占4位十六进制,对应0-FFFF的范围,也就是16位),总颜色深度48位。
你贴的teapot.xpm里的颜色都是12位十六进制,所以它就是每通道16位的XPM文件。
顺带提一句,有些XPM可能会用颜色名称(比如red)或者其他颜色表示方式,但只要是用十六进制定义颜色的,这个方法就完全适用。目前来说,确实没有比直接检查十六进制字符长度更直接的办法了——毕竟XPM的设计初衷是轻量、方便嵌入代码,没把位深度作为单独的元数据项来存储。
备注:内容来源于stack exchange,提问作者Robert Dodier
相关产品推荐
相关产品推荐

