【问题标题】:RGB Values issue using PIL in python 3 issues在 python 3 问题中使用 PIL 的 RGB 值问题
【发布时间】:2012-10-14 05:21:24
【问题描述】:

我正在使用 Python 3 中的 PIL 库来修改 .gif 文件,到目前为止,在大多数情况下,最终结果看起来应该是这样的,但是当检查一些 rgb 值时,我注意到我是只得到了几个数字。

0、51、153、102 是我最常得到的 4 个值。可能还有1-2个其他人,但就是这样。在 200x200 的 gif 图像中,我只得到 4-6 r g b 值。

这是我目前使用的通用格式的副本:

from PIL import Image

def main():
    image=Image.open("filename.gif")
    image=image.convert('RGB')
    width, height = image.size
    for x in range(width):
        for y in range(height):

            r, g, b = image.getpixel ((x,y))
            print (r,g,b)

我试图右移 4 以将高位转移到低位,但返回几乎总是 0。

我在编码中做错了吗?我认为在尝试左移位值时会引起一些问题。

任何帮助将不胜感激......

【问题讨论】:

    标签: python python-3.x image-processing python-imaging-library rgb


    【解决方案1】:

    您发布的代码没有任何问题。

    您返回的值的完整列表无疑是 0、51、102、153、204 和 255,或十六进制:0x00、0x33、0x66、0x99、0xcc、0xff(表示从 0% 开始的强度至 100%,步长为 20%)。由于其中有六种颜色,它们可以表示的颜色总数为 6 * 6 * 6 = 216,并且由于 216

    这些也称为web-safe colors,由于历史原因,它们经常用于 GIF 图像。

    但是,您的右移问题似乎无关紧要:

    >>> for x in 0, 51, 102, 153, 204, 255:
    ...     print x >> 4
    ... 
    0
    3
    6
    9
    12
    15
    >>> 
    

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 2016-05-04
      • 2013-05-26
      • 2011-03-07
      相关资源
      最近更新 更多