python PIL-背景显示为不透明而不是透明
我想从上传的图像(实际上是头像)生成32x32大小的缩略图 为了防止缩略图小于该大小,我想创建一个透明的32x32背景,并将缩略图粘贴到其上 下面的代码尝试这样做。然而,化身显示在黑色不透明背景上;在整个过程中,我在某处丢失了透明度信息。我哪里做错了python PIL-背景显示为不透明而不是透明,python,django,image,Python,Django,Image,我想从上传的图像(实际上是头像)生成32x32大小的缩略图 为了防止缩略图小于该大小,我想创建一个透明的32x32背景,并将缩略图粘贴到其上 下面的代码尝试这样做。然而,化身显示在黑色不透明背景上;在整个过程中,我在某处丢失了透明度信息。我哪里做错了 def handle_image(img): size = SMALL_AVATAR_IMAGE_SIZE img.thumbnail(size, Image.ANTIALIAS) img = img.convert('
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)
您正在生成JPG图像。JPEG不支持背景透明度。您需要生成PNG图像以支持透明胶片。这是因为JPEG无法保存RGBA图像中包含的透明度信息。您可能希望将化身保存为类似PNG的格式,这样可以保存这些信息