更改python中的活动透明.png背景色

更改python中的活动透明.png背景色,python,background,png,gimp,Python,Background,Png,Gimp,我正在尝试自动执行此操作,它可以将透明.png文件中的活动背景颜色从白色更改为黑色。背景以某种方式与图片一起保存,但仍然保持透明。我无法在其他程序中复制此功能,但在项目中需要它 我这样尝试过(运行输入文件夹中的所有图像,然后将其作为新文件放入输出文件夹,图像大小为9150*10980 px) 这将使用透明背景保存我的图像,但不使用所需的“黑色透明”。我希望我把问题说清楚,这并不是说我想在图像上得到一个真正的黑色背景,它应该仍然保持透明 任何帮助都将不胜感激。提前感谢。好吧,GIMP是开源的,所以

我正在尝试自动执行此操作,它可以将透明.png文件中的活动背景颜色从白色更改为黑色。背景以某种方式与图片一起保存,但仍然保持透明。我无法在其他程序中复制此功能,但在项目中需要它

我这样尝试过(运行输入文件夹中的所有图像,然后将其作为新文件放入输出文件夹,图像大小为9150*10980 px)

这将使用透明背景保存我的图像,但不使用所需的“黑色透明”。我希望我把问题说清楚,这并不是说我想在图像上得到一个真正的黑色背景,它应该仍然保持透明


任何帮助都将不胜感激。提前感谢。

好吧,GIMP是开源的,所以你可以自由地查看他们是如何做到的,但我猜他们会将RGB像素的颜色更改为每个完全透明的Alpha通道像素所需的颜色。这有意义吗?完全透明的像素上可以有颜色,因为透明度存储在一个单独的层中,所以您可以只查看该层,获取所有完全透明的像素位置,然后在RGB通道上重复使用这些位置来设置颜色。您显示的图标不会在图像中引发颜色替换。它只是交换与绘制工具一起使用的颜色。您可以要求Gimp在导出时将完全透明的像素设置为背景色。请在所需调整之前和之后显示图像,以便我们可以看到您正在尝试执行的操作。非常感谢。
import random
import PIL
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import glob

def background_apply(input_image_path,
 output_image_path):
 photo = Image.open(input_image_path).convert('RGBA')
 img2 = Image.new('RGBA', (9150, 10980))
 print (photo.mode)
 img2.paste(photo, mask=photo)

img2.save(output_image_path)

list = glob.glob(r"C:\Users\XX\input\*.*")

for photo in list:

 out = photo.replace('input','output')
 background_apply(photo,
 out)