图像“模式”列表

时间:2010-11-16 22:07:07

标签: image image-processing colors python-imaging-library pillow

通过PIL(与this question相关),我在哪里可以获得全面的图像模式列表?我看到“RGB”,“RGBX”,我的代码以某种方式具有“BGRX”,即使它在我可以看到的PIL文档中没有提到。例如,如何在与Windows API调用交互时查看哪个,PIL支持哪些以及选择哪种正确的模式?

基本上我对图像模式知之甚少,并希望学习更多信件,以使其神奇地工作。

1 个答案:

答案 0 :(得分:26)

Pillow中有两个截然不同的概念,名称相似:

“模式”

这些列在https://pillow.readthedocs.io/en/latest/handbook/concepts.html#modes

根据这些文档:

  

图像模式定义图像中像素的类型和深度。

这种“模式”是通过Image的{​​{1}}属性公开的,可以通过.mode方法进行更改,并且可以传递给采用.convert()参数。它们与“原始模式”不同。

“原始模式”

这些内容由raw decoder在内部使用,它将来自图像文件的未压缩数据转换为PIL mode对象可以理解的格式。 “原始模式”比“模式”多几倍,它们不仅传达有关图像中像素的类型(彩色或灰度)和位深度的信息,还传达它们在文件中的布局。例如,原始模式Image被记录为“24位真彩色,行交错(首先是所有红色像素,所有绿色像素,最后是所有蓝色像素)。”

如上面链接的文档(以及旧PIL documentation)中所述,可以在RGB;L中找到原始模式列表。您将在文件末尾附近找到该列表。

来自Pillow当前主分支的

Unpack.chttps://github.com/python-pillow/Pillow/blob/master/src/libImaging/Unpack.c

来自PIL最终版本的{p> Unpack.chttp://svn.effbot.org/public/tags/pil-1.1.7/libImaging/Unpack.c