如何获取jpg文件的深度?

11 投票
4 回答
25024 浏览
提问于 2025-04-15 17:36

我想用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]

撰写回答