pyton Pillow 把透明背景转成白色背景的方法替换指定背景图片

起先在百度上搜到的文章,的确可以做到透明背景转成白色背景,但是缺陷非常严重,会导致图的背景产生很多像素点,而且效率也不是很高。

又经过了一番搜索之后,发现了一个更好的办法

from PIL import Image

try:
    imagePtah = 'your image file path'
    img = Image.open(imagePtah)
    if img.mode != 'RGBA':
        image = img.convert('RGBA')
    width = img.width
    height = img.height

    image = Image.new('RGB', size=(width, height), color=(255, 255, 255))
    image.paste(img, (0, 0), mask=img)

    image.show()
    
except Exception as e:
    print(e)

 

 

背景图替换指定图片  bk.png

    imagePtah = '/tmp/123.png'
    img = Image.open(imagePtah)
    if img.mode != 'RGBA':
        image = img.convert('RGBA')

    width = img.width
    height = img.height

    #image = Image.new('RGB', size=(width, height), color=(255, 255, 0)) # 指定背景色
    image = Image.open("/tmp/bk.png") # 指定背景图片
    image = image.resize((width, height))

    image.paste(img, (0, 0), mask=img)

    max_pix = 512
    if max(width,height) >max_pix:
        scale = max_pix / max(width,height)
        width,height = int(width*scale),int(height*scale)
    image = image.resize((width, height))

    image.save("/tmp/4561.jpg")

 

posted on 2022-04-24 16:49  星河赵  阅读(645)  评论(0编辑  收藏  举报

导航