13

我正在尝试用推文制作图像,但其中一些包含Emojis。我正在使用PIL来渲染我的图像和Symbola字体。

文本采用 unicode utf-8 编码,Symbola 字体确实包含表情符号。以下是代码的精简版:

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 中运行,但它不在 Windows 或 Mac 上运行。有任何想法吗?

4

2 回答 2

2

如果符号 CYCLONE u"\U0001f300"(我从网上下载了 Symbola.tff),那么与 PIL 一起使用非常简单:

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()

看看这个

于 2018-12-11T22:50:43.657 回答
0

Pillow 中有一个错误,请参阅#1774#3777。这现在应该在 Pillow 的 6.1 版本中使用PR#3780修复,但仅适用于 Python 3.x。

于 2019-08-20T07:53:29.280 回答