我使用PIL将用Django上传的透明PNG图像转换为JPG文件。
Image.open(object.logo.path).save('/tmp/output.jpg', 'JPEG')
要么
Image.open(object.logo.path).convert('RGB').save('/tmp/output.png')
两种方式,产生的图像如下所示:
有没有办法来解决这个问题?
发布于 2018-02-28 12:57:53
这是一个更简单的版本 - 不确定它的性能如何。基于我在创建RGBA -> JPG + BG
对sorl缩略图的支持时发现的一些django片段。
from PIL import Image
png = Image.open(object.logo.path)
png.load() # required for png.split()
background = Image.new("RGB", png.size, (255, 255, 255))
background.paste(png, mask=png.split()[3]) # 3 is the alpha channel
background.save('foo.jpg', 'JPEG', quality=80)
结果@ 80%
结果@ 50%
发布于 2018-02-28 13:41:26
from PIL import Image
png = Image.open(img_path).convert('RGBA')
background = Image.new('RGBA', png.size, (255,255,255))
alpha_composite = Image.alpha_composite(background, png)
alpha_composite.save('foo.jpg', 'JPEG', quality=80)
https://stackoverflow.com/questions/-100007452
复制相似问题