我需要用白色替换png图像的透明层。我试过这个
from PIL import Image
image = Image.open('test.png')
new_image = image.convert('RGB', colors=255)
new_image.save('test.jpg', quality=75)
但透明层变黑了。有人可以帮帮我吗?
答案 0 :(得分:2)
将图像粘贴到完全白色的rgba背景上,然后将其转换为jpeg。
from PIL import Image
image = Image.open('test.png')
new_image = Image.new("RGBA", image.size, "WHITE") # Create a white rgba background
new_image.paste(image, (0, 0), image) # Paste the image on the background. Go to the links given below for details.
new_image.convert('RGB').save('test.jpg', "JPEG") # Save as JPEG
答案 1 :(得分:0)
以@Alperen的答案为基础,如果要消除透明度,可以将图像粘贴到新的非透明(RGB)图像上:
from PIL import Image
input = Image.open('image.png')
image = Image.new("RGB", input.size, "WHITE")
image.paste(input, (0, 0), input)
image.save('image_out.png')
答案 2 :(得分:0)
其他答案给了我一个 Bad transparency mask
错误。解决办法是确保原图为RGBA模式。
image = Image.open("test.png").convert("RGBA")
new_image = Image.new("RGBA", image.size, "WHITE")
new_image.paste(image, mask=image)
new_image.convert("RGB").save("test.jpg")