gpt4 book ai didi

Python PIL 在渲染文本时添加额外的字符

转载 作者:行者123 更新时间:2023-11-30 23:40:28 25 4
gpt4 key购买 nike

当我使用 PIL 在图像上渲染文本时,当文本中存在 ® 时,它会添加一个额外的字符。

输入示例:Brand Name®

输出示例:Brand NameA®

它似乎总是字母A。

这是我的代码:

font = ImageFont.truetype(os.path.join(settings.SITE_ROOT, "fixtures/fonts/%s.otf" % font), int(font_size * 10), encoding="unic")
image = Image.new("RGBA", (width * 10, height * 10), convert_hex_color(background))
draw = ImageDraw.Draw(image)
draw.text((0, 0), text, convert_hex_color(foreground), font=font)

此时我不知道为什么会有额外的字符。我正在使用 PIL 1.1.7

“文本”被传递给该方法。当打印到控制台时,它看起来像这样:

About the REALTOR® Content Resource

最佳答案

首先尝试将文本转换为unicode对象。

text为unicode时:

import Image
import ImageFont
import ImageDraw

font = ImageFont.truetype('/usr/share/fonts/truetype/msttcorefonts/Arial.ttf', 20)
image = Image.new("RGBA", (300,20), color = (0, 0, 0, 255))
draw = ImageDraw.Draw(image)
text = u'About the REALTOR® Content Resource'
draw.text((0, 0), text, (255, 0, 0, 255), font=font)
image.save('/tmp/out.png')

产量

enter image description here

但是当

text = 'About the REALTOR® Content Resource'

代码产生

enter image description here

<小时/>

如果textstr,则将其转换为unicode

text = text.decode(encoding)

其中 encoding 必须替换为实际的 encoding of the string 。使用的正确编码取决于文本的定义或生成方式。

关于Python PIL 在渲染文本时添加额外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662509/

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