【问题标题】:List of Image "modes"图像“模式”列表
【发布时间】:2011-05-11 02:46:10
【问题描述】:

查看 PIL(与 this question 相关),我在哪里可以获得图像模式的完整列表?我看到“RGB”,“RGBX”,我的代码以某种方式具有“BGRX”,尽管我可以看到的 PIL 文档中没有提到它。例如,在与 Windows API 调用交互时,我如何查看哪个是哪个,PIL 支持什么,以及选择哪些合适的模式?

基本上我对图像模式知之甚少,我想了解的不仅仅是输入什么字母才能让它神奇地工作。

【问题讨论】:

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


    【解决方案1】:

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

    “模式”

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

    根据这些文档:

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

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

    “原始模式”

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

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

    Unpack.c来自 Pillow 当前的 master 分支:https://github.com/python-pillow/Pillow/blob/master/src/libImaging/Unpack.c

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      相关资源
      最近更新 更多