使用 PIL Image 进行像素转换时的粉红色调

问题描述

我正在尝试更改图像中的一半像素,但它们总是带有粉红色调。即使在像素 RGB 值保持不变的代码示例中,图像也会呈现粉红色。这是代码和前后图像。是什么导致了粉红色,我该如何解决

from PIL import Image
im = Image.open('me.jpg')
pix = im.load()
q,w = (im.size)
s=0
a=0
x=0
y=0
while s<w:
    while a<(q/2):
        r,g,b = im.getpixel((x,y))
        pix[0+x,0+y] = (r,b,g)
        a=a+1
        x=x+1
    a=0
    x=0
    y=y+1
    s=s+1

im.save('me2.jpg')

Example

解决方法

在分配您提取的颜色时,您颠倒了 g 和 b 的顺序:

pix[0+x,0+y] = (r,b,g)

如果你把它们按 rgb 顺序放回去,它会起作用:

pix[0+x,g,b)