gpt4 book ai didi

python PIL - 背景显示不透明而不是透明

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:04 27 4
gpt4 key购买 nike

我想从上传的图像(实际上是头像)生成 32x32 大小的缩略图。

为了防止缩略图小于该尺寸,我想创建一个透明的 32x32 背景并将缩略图粘贴到它上面。

下面的代码试图这样做。但是,头像显示在黑色和不透明的背景上;在此过程中,我在某处丢失了透明度信息。我哪里做错了?

def handle_image(img):
size = SMALL_AVATAR_IMAGE_SIZE
img.thumbnail(size, Image.ANTIALIAS)
img = img.convert('RGBA')
background = Image.new('RGBA', size, (255, 255, 255, 0))
background.paste(img, (0, (size[1] - img.size[1]) / 2), img)
img = background
processed_image_small = ContentFile(img.tostring('jpeg', img.mode))
targetpath = str(self.user.id) + '_S' + '.jpg'
self.img_small.save(targetpath, processed_image_small,save=False)

最佳答案

这是因为 JPEG 无法保存 RGBA 图像中包含的透明度信息。您可能希望将头像保存为 PNG 等能够保留这些信息的格式。

关于python PIL - 背景显示不透明而不是透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1484101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com