如何获取jpg文件的深度?
我想用Python获取一个jpeg文件的位深度。
我使用了Python图像库:
import Image
data = Image.open('file.jpg')
print data.depth
但是,这个方法给我的结果是8,而这个图像明显是24位的。我是不是做错了什么?有没有办法用纯Python代码来实现?
提前谢谢大家。
补充:应该是data.bits,而不是data.depth。
4 个回答
4
PIL在报告每个“波段”的位深度。我在PIL的文档中并没有看到depth
这个属性被详细说明,不过我觉得你可能想要的是这个:
data.depth * len(data.getbands())
或者更好的方式是:
data.mode
想了解更多信息,可以查看这里。
7
Jpeg文件的位深度和GIF或PNG文件不太一样。制作Jpeg数据时使用的转换方法,在解压时会呈现出连续的颜色变化。
19
我在Python Imaging Library手册里没有看到depth
这个属性的相关文档。不过,看起来只有有限的模式是支持的。你可以试试下面这样的写法:
mode_to_bpp = {'1':1, 'L':8, 'P':8, 'RGB':24, 'RGBA':32, 'CMYK':32, 'YCbCr':24, 'I':32, 'F':32}
data = Image.open('file.jpg')
bpp = mode_to_bpp[data.mode]