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")