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)
顶部和底部带有透明条纹的输出:
所以我正在尝试使用 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)
顶部和底部带有透明条纹的输出: