我的目标是生成(在Windows下的Python中)渲染任何Unicode字符(包括特别是表情符号)的位图图像。我已经安装了几种适合表情符号的字体(包括Symbola)以进行测试。
到目前为止,我已经尝试过PIL,matplotlib和pygame,但是这些都无法在Windows下完成(前两个显然可以在某些版本的Linux / MacOS上完成,而pygame显然仅限于以上功能)到0xffff,以排除表情符号。)
我发现reportlab能够生成带有表情符号的PDF(而其位图渲染器无法正确渲染它们),但是我仍然需要找到一种方法来从PDF中提取表情符号字符并进行转换位图。我觉得必须有一个更简单的方法...
注意:这个问题与Rendering Emoji with PIL有关,但是如果另一个库可以完成工作,我不一定要使用PIL
答案 0 :(得分:3)
我最终在Is there any good python library for generating and rendering text in image format?中找到了解决方案。尽管它基于第三方可执行文件,但如上所述,它很容易用Python包装。
确切步骤如下:
MAGICK_HOME
设置为安装文件夹conda install pillow
)中轻松处理生成的图像还有我的测试脚本:
import os
import subprocess
import PIL.Image
to_render = ''
output_file = 'rendered_emoji.bmp'
subprocess.run([
os.path.join(os.environ['MAGICK_HOME'], 'magick.exe'),
'convert', '-font', 'Symbola', '-size', '50x50',
'-gravity', 'center', f'label:{to_render}', output_file])
image = PIL.Image.open(output_file)
image.show()