我有大量的图像。有些是JPEG,有些是PNG。对于 PNG,我正在制作一个程序将所有透明像素转换为纯白色。但是,不仅不起作用,某些背景还会更改为随机颜色,例如红色和绿色。我不知道我做错了什么,所以这是我的代码:
import os
from PIL import Image
files = os.listdir("/Users/Riley/PycharmProjects/myNN/logos")
for file in files:
print(file)
image = Image.open("/Users/Riley/PycharmProjects/myNN/logos/" + file)
pixels = image.load()
if image.mode == 'RGBA':
print("RGBA")
for x in range(image.size[0]):
for y in range(image.size[1]):
if pixels[x, y][3] < 1:
pixels[x, y] == (255, 255, 255, 1)
print(pixels[x, y])
image = image.convert('RGB')
该print(pixels[x, y])
是进行故障排除。我没有收到任何错误,但它会打印出随机 RGBA 值,尽管刚刚将其设置为 (255, 255, 255, 1)。谢谢。
你不需要这样做。制作与透明图像大小相同的白色新图像,然后将透明图像粘贴在顶部,白色就会显示出来,这样会更容易、更快捷。
from PIL import Image
# Open original with transparency
im = Image.open('image.png').convert('RGBA')
# Make white background same size
white = Image.new('RGB',im.size,color='white')
# Paste onto background
white.paste(im,mask=im)
# Save
white.save('result.png')
顺便说一句,您可以在不编写任何 Python 的情况下做到这一点,只需使用安装在大多数 Linux 发行版上并且可用于 macOS 和 Windows 的ImageMagick。
首先,创建一个输出目录,结果将放在那里:
mkdir output
然后将您所有的 PNG 一次性压平到白色背景上:
magick mogrify -path output -background white -flatten /Users/Riley/PycharmProjects/myNN/logos/*png
如果您的ImageMagick是 v6 或更早版本,请删除magick
并使用:
mkdir output
mogrify -path output -background white -flatten /Users/Riley/PycharmProjects/myNN/logos/*png
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句