我用Python PIL在背景图像上渲染用户输入文本(我正在使用枕头)。
代码很简单:
draw = ImageDraw.Draw(im)
draw.text((x, y), text, font=font, fill=font_color)
问题是,用户可以用任何语言输入,我如何确定使用哪个font
?
ps:我知道我必须先拥有字体文件,所以我搜索并找到Google Noto,下载了所有字体,将它们放在/usr/local/share/fonts/
中,但这些字体是用语言分隔的,所以我仍然无法加载可以呈现所有用户输入文本的字体。
答案 0 :(得分:5)
NoTo(实际上只是Adobe的Source Pro字体具有不同的名称,因为谷歌更容易以这种方式推销它)不是单一字体,它是一系列字体。当您go to download them时,Google会明确告诉您,许多不同的目标语言有很多不同的版本,原因很简单:
℃
实际上可以是字母C
和符号°
,所以它依赖于三个字形:两个真实的字形和一个虚拟的构图。你用这种方式快速耗尽空间)和因此,正确的解决方案是获取所有字体,然后根据您为其生成文本的{script, language}
对选择正确的字体。这比你想做的更复杂吗?是。有必要吗?同样是=)