首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PIL绘制Emoji

用PIL绘制Emoji
EN

Stack Overflow用户
提问于 2013-06-27 21:34:08
回答 3查看 7.7K关注 0票数 14

我试着用推特来制作图片,但是其中有些包含表情符号。我使用PIL来呈现我的图像和双曲线字体。

文本是以Unicodeutf-8编码的,而辛波拉字体确实包含了表情符号。下面是代码的简略版本:

代码语言:javascript
运行
复制
from PIL import Image, ImageFont, ImageDraw
text = u"\U0001f300" #CYCLONE emoji
image = Image.new("RGBA", (100,100), (255,255,255))
font = ImageFont.truetype("Symbola.ttf", 60, encoding='unic')
draw = ImageDraw.Draw(image)
draw.text((0,0), text, (0,0,0), font=font)
image.save("Test.png")
image.show()

这只是用两个矩形来渲染和显示图像,而不是使用表情符号。

会感谢你的任何帮助或想法。

谢谢!

编辑:正如falsetru所指出的那样,这段代码确实在Ubuntu中运行,但是它不在或Mac上运行。有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2018-12-11 22:50:43

如果符号气旋u"\U0001f300“(我从web下载一个Symbola.tff )是非常简单的用于PIL:

代码语言:javascript
运行
复制
from PIL import Image, ImageDraw, ImageFont, ImageFilter

#configuration
font_size=36
width=500
height=100
back_ground_color=(255,255,255)
font_size=36
font_color=(0,0,0)
unicode_text =u"\U0001f300"
im  =  Image.new ( "RGB", (width,height), back_ground_color )
draw  =  ImageDraw.Draw ( im )
unicode_font = ImageFont.truetype("Symbola.ttf", font_size)
draw.text ( (10,10), unicode_text, font=unicode_font, fill=font_color )
im.show()

看看

票数 2
EN

Stack Overflow用户

发布于 2019-08-20 07:53:29

枕头上有一个bug,见#1774#3777。现在,这个问题应该在带有PR#3780的Pillow版本6.1中得到修正,但只适用于Python3.x。

票数 1
EN

Stack Overflow用户

发布于 2022-03-28 23:08:58

如果您希望使用原始字体编写符号,则可以通过将字体与Symbola.ttf或任何表情符号字体合并来实现。您可以使用fontforge (https://fontforge.org/)合并这两种字体。

启动fontforge,打开主字体,

单击“菜单:element->merge fonts”并选择您的表情符号字体(Symbola.ttf)。为任何弹出对话框回答no

可以选择更改新字体的名称:element->font info

最后,完成后转到file->generate fonts,并将其保存为ttf (TrueType)。

现在,您可以使用您生成的字体绘制文本的表情!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17353619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档