在PIL中替换单一颜色?

5 投票
2 回答
3053 浏览
提问于 2025-04-16 00:45

我有一张图片,我想把一种颜色的所有像素换成另一种颜色,最简单的方法是什么?

大致上,我在tkinter里有一张图片,当我按下一个按钮时,我想让颜色改变。

2 个回答

3

我觉得最快的方法就是使用 Image.load() 这个方法。你可以试试下面这样的写法:

from PIL import Image
im = Image.open("image.jpg")
image_data = im.load()
# Here you have access to the RGB color of each pixel
# image_data[x,y] = (R,G,B)
4

试试这个。

#!/usr/bin/python
from PIL import Image
import sys

img = Image.open(sys.argv[1])
img = img.convert("RGBA")

pixdata = img.load()

# Clean the background noise, if color != white, then set to black.

for y in xrange(img.size[1]):
    for x in xrange(img.size[0]):
        if pixdata[x, y] == (255, 255, 255, 255):
            pixdata[x, y] = (0, 0, 0, 255)

你可以在GIMP里使用颜色选择器来吸取颜色,这样就能看到它的RGBA颜色值了。

撰写回答