我想叠加两个图像,其中一个是透明的
I'm looking to superimpose two images, one of which is transparent
我正在尝试叠加两个图像,知道其中一个已经是透明的!
我在网上查看了一些已经完成的内容,以下是我找到并适合我的内容:
from PIL import Image
img = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png")
background = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\photo_1\oui_1.png")
background.paste(img, (0, 0), new_img)
background.save('how_to_superimpose_two_images_01.png',"PNG")
和
from PIL import Image
img = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png")
new_image = Image.new("RGBA", img.size, "WHITE")
background = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\photo_1\oui_1.png")
background.paste(img, (0, 0), new_img)
background.save('how_to_superimpose_two_images_01.png',"PNG")
我的透明图片很好地放在了我的另一张图片前面,但是透明部分变成了绿色,因此隐藏了另一张图片
我该如何解决?
千辛万苦终于搞定了! (我写给下一个会为此奋斗的人!)
使图像透明的函数:(这里是所有的黑色像素都透明,当然你可以在那里更改这个值)
from PIL import Image
def transparent_1(我的图像) :
img = Image.open(myimage) # ex : fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png"
img = img.convert("RGBA")
datas = img.getdata()
newData = []
for item in datas:
if item[0] == 0 and item[1] == 0 and item[2] == 0:
newData.append((0, 0, 0, 0))
else:
newData.append(item)
img.putdata(newData)
img.save("image_transparente.png", "PNG") # ca enregistre l'image dans le même dossier que là où est le code
叠加两张图片的函数:
from PIL import Image
def superposer_img(ft,bg): # ft = 前面,bg = 背景
filename = ft
front = Image.open(filename, 'r')
filename1 = bg
background = Image.open(filename1, 'r')
text_img = Image.new('RGBA', background.size , (0, 0, 0, 0))
text_img.paste(background, (0,0))
text_img.paste(front, (0,0), mask=front)
text_img.save("image.png", format="png")
以及调用函数的程序:
import sys
sys.path.append(fr"D:\Prog\Automatisation\Fonction")
from Superposer_image import superposer_img as supimg
from Image_Transparente import transparent_1 as tr
tr(fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png")
supimg("image_transparente.png",fr"D:\Prog\Automatisation\Photo tu preferes
quoi\photo_1\a.png")
我正在尝试叠加两个图像,知道其中一个已经是透明的!
我在网上查看了一些已经完成的内容,以下是我找到并适合我的内容:
from PIL import Image
img = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png")
background = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\photo_1\oui_1.png")
background.paste(img, (0, 0), new_img)
background.save('how_to_superimpose_two_images_01.png',"PNG")
和
from PIL import Image
img = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png")
new_image = Image.new("RGBA", img.size, "WHITE")
background = Image.open(fr"D:\Prog\Automatisation\Photo tu preferes quoi\photo_1\oui_1.png")
background.paste(img, (0, 0), new_img)
background.save('how_to_superimpose_two_images_01.png',"PNG")
我的透明图片很好地放在了我的另一张图片前面,但是透明部分变成了绿色,因此隐藏了另一张图片
我该如何解决?
千辛万苦终于搞定了! (我写给下一个会为此奋斗的人!)
使图像透明的函数:(这里是所有的黑色像素都透明,当然你可以在那里更改这个值)
from PIL import Image
def transparent_1(我的图像) :
img = Image.open(myimage) # ex : fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png"
img = img.convert("RGBA")
datas = img.getdata()
newData = []
for item in datas:
if item[0] == 0 and item[1] == 0 and item[2] == 0:
newData.append((0, 0, 0, 0))
else:
newData.append(item)
img.putdata(newData)
img.save("image_transparente.png", "PNG") # ca enregistre l'image dans le même dossier que là où est le code
叠加两张图片的函数:
from PIL import Image
def superposer_img(ft,bg): # ft = 前面,bg = 背景
filename = ft
front = Image.open(filename, 'r')
filename1 = bg
background = Image.open(filename1, 'r')
text_img = Image.new('RGBA', background.size , (0, 0, 0, 0))
text_img.paste(background, (0,0))
text_img.paste(front, (0,0), mask=front)
text_img.save("image.png", format="png")
以及调用函数的程序:
import sys
sys.path.append(fr"D:\Prog\Automatisation\Fonction")
from Superposer_image import superposer_img as supimg
from Image_Transparente import transparent_1 as tr
tr(fr"D:\Prog\Automatisation\Photo tu preferes quoi\signature\signature_1.png")
supimg("image_transparente.png",fr"D:\Prog\Automatisation\Photo tu preferes
quoi\photo_1\a.png")