我有一个透明背景的PNG图像,我想调整它到另一个图像,但白色背景,而不是透明的。 我如何用PIL做到这一点?Python PIL:如何设置图像的背景(png)为白色?
这里是我的代码:
basewidth = 200
img = Image.open("old.png")
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), PIL.Image.ANTIALIAS)hsize = int((float(img.size[1]) * float(wpercent)))
img.save("new.png")
更新
import numpy as np
import PIL
from PIL import Image
basewidth = 200
img = Image.open("old.png")
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
data = np.array(img)
alpha1 = 0 # Original value
r2, g2, b2, alpha2 = 255, 255, 255,255 # Value that we want to replace it with
red, green, blue,alpha = data[:,:,0], data[:,:,1], data[:,:,2], data[:,:,3]
mask = (alpha==alpha1)
data[:,:,:4][mask] = [r2, g2, b2, alpha2]
img = Image.fromarray(data)
img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
img.save('new.png')
下面是@khakishoiab和@Chachmu 谢谢你们提供的代码!
我们已经取得了新的编辑,去检查 – khakishoiab
@Banuta阿林亚历第一个猜测是尝试更换数据[:,:,:,3]数据[:,:,:,4]在数据[:,:,:,3] [掩码] = [r2,g2,b2,alpha2]行 – Chachmu
谢谢,现在它的工作就像一个魅力! –