Python 生成具有透明度和固定宽度的缩略图

Python generate thumbnail with transparancy and fixed width

所以我正在尝试使用 Python/Django sorl-thumbnail 库生成缩略图,我被要求生成一个 150x150 的图像,像这样(以防你看不到有一些透明的边距在顶部和底部:

我试过:

get_thumbnail(
            original_image, '150x150', quality=99, format='PNG'
        )

我可以用 sorl-thumbnail 做到这一点吗?我的意思是在顶部和底部添加透明胶片并将完整图像尺寸保持在 150x150?如果不是,我如何使用另一个 python 包实现此目的?

谢谢

我不确定 sorl-thumbnail,但您可以使用 Image 来完成。您基本上需要创建一个透明的 150x150 图像并将缩略图放在它上面。

#!/usr/bin/python

from PIL import Image

margin=20
X=150
Y=150
in_path="flower.jpg"
out_path="thumbnail.png"

#creates a transparent background, RGBA mode, and size 150 by 150.
background = Image.new('RGBA', (X,Y))


# opening an image and converting to RGBA:
img = Image.open(in_path).convert('RGBA')

# Resizing the image

img = img.resize((X, Y-margin*2), Image.ANTIALIAS)

# Putting thumbnail on background

background.paste(img, (0, margin), img)
background.save(out_path)

顶部和底部带有透明条纹的输出: