如何在Windows下使用Python将emojis渲染为图像?

问题描述 投票:2回答:1

我的目标是生成(在Windows下的Python中)一个位图图像,渲染任何unicode字符,尤其包括emojis。我已经安装了几个表情符号友好的字体(包括Symbola)用于测试目的。

到目前为止,我已经尝试过PIL,matplotlib和pygame,但是这些都不能在Windows下完成(前两个显然可以在某些版本的Linux / MacOS上执行,而pygame明确限制为高达0xffff的字符,这排除了表情符号)。

我发现reportlab能够用emojis生成PDF(虽然它的位图渲染器无法正确渲染它们),但我仍然需要找到一种从PDF中提取表情符号并将其转换为位图的方法。我觉得必须有一个更简单的方法......

注意:这个问题与Rendering Emoji with PIL有关,但如果另一个图书馆可以完成这项工作我不一定要使用PIL

python windows unicode emoji
1个回答
3
投票

我最终在Is there any good python library for generating and rendering text in image format?找到了解决方案。虽然它基于第三方可执行文件,但如上所述,它很容易用Python包装。

具体步骤如下:

  1. https://www.imagemagick.org/script/download.php#windows安装ImageMagick
  2. 将环境变量MAGICK_HOME设置为安装文件夹
  3. 安装Pillow以便能够在Python中轻松操作生成的图像(conda install pillow
  4. https://fontlibrary.org/en/font/symbola下载并安装Symbola字体

我的测试脚本:

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()
© www.soinside.com 2019 - 2024. All rights reserved.