我想使用Python获取jpeg文件的位深度。
使用Python Imaging Library:
import Image
data = Image.open('file.jpg')
print data.depth
然而,这让我得到了一个深度为8的明显是24位图像。我做错了什么吗?有没有用纯Python代码实现的方法?
提前感谢.
编辑:应该使用data.bits而不是data.depth。
我想使用Python获取jpeg文件的位深度。
使用Python Imaging Library:
import Image
data = Image.open('file.jpg')
print data.depth
然而,这让我得到了一个深度为8的明显是24位图像。我做错了什么吗?有没有用纯Python代码实现的方法?
提前感谢.
编辑:应该使用data.bits而不是data.depth。
我在Python Imaging Library handbook中没有看到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]
mode_to_bpp = {"1": 1, "L": 8, "P": 8, "RGB": 24, "RGBA": 32, "CMYK": 32, "YCbCr": 24, "LAB": 24, "HSV": 24, "I": 32, "F": 32}
- Mehdi Nellen"I;16": 16, "I;16B": 16, "I;16L": 16, "I;16S": 16, "I;16BS": 16, "I;16LS": 16, "I;32": 32, "I;32B": 32, "I;32L": 32, "I;32S": 32, "I;32BS": 32, "I;32LS": 32
- Mehdi NellenJpeg文件的位深度与GIF或PNG文件不同。用于创建Jpeg数据的变换在解压缩时呈现连续的颜色谱。
PIL报告每个“波段”的比特深度。我在PIL文档中并没有看到“depth”作为一个文档化的属性,然而,我认为你想要这个:
data.depth * len(data.getbands())
data.mode
请查看这里以获取更多信息。
如果您使用更现代的Photoshop版本,您会注意到它还可以让您使用每个通道16位,这将为您提供每个像素48位。
但我找不到区分两者的参考资料。