gpt4 book ai didi

python - App Engine、PIL 和叠加文本

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:35 26 4
gpt4 key购买 nike

我正在尝试在 GAE 上的图像上覆盖一些文本。现在他们公开了 PIL 库,这应该不是问题。

这是我的。它有效,但我忍不住认为我应该直接写入背景图像,而不是创建一个单独的覆盖图像然后合并。

我可以使用Image.frombuffer吗?或者什么的,我试过了,但我就是不明白......

from PIL import Image, ImageDraw, ImageFont
from google.appengine.api import images
from google.appengine.ext import blobstore
from google.appengine.api import files

def compose(key):

# create new image
text_img = Image.new('RGBA', (800,600), (0, 0, 0, 0))
draw = ImageDraw.Draw(text_img)
draw.text((0, 0), 'HELLO TEXT', font=ImageFont.load_default())

# no write access on GAE
output = StringIO.StringIO()
text_img.save(output, format="png")
text_layer = output.getvalue()
output.close()

# read background image
blob_reader = blobstore.BlobReader(key)
background = images.Image(blob_reader.read())

# merge
merged = images.composite([(background, 0, 0, 1.0, images.TOP_LEFT),
(text_layer, 0, 0, 1.0, images.TOP_LEFT)],
800, 600)

# save
file_name = files.blobstore.create(mime_type='image/png')
with files.open(file_name, 'a') as f:
f.write(merged)
files.finalize(file_name)

最佳答案

您应该改用[Image.open][1] 方法。 Image.frombufferImage.fromstring 解码像素数据而非原始图像。

在你的情况下你可以使用类似的东西:

blob_reader = blobstore.BlobReader(key)
text_img = Image.open(blob_reader)
.........

关于python - App Engine、PIL 和叠加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695480/

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