有没有好的Python库用于生成和渲染图像格式的文本?
我正在开发一个类似内容管理系统(CMS)的应用,用户可以按照自己的想法来创建菜单。理想情况下,每个菜单项不是简单的文字加背景,而是文字的图片。我想到了两种实现方式:
a) 通过将字体渲染成一个或多个图片文件,每个字母都有一个对应的图片,然后写一个脚本,输入一个单词后,可以得到一系列图片的顺序,或者得到一个包含所有字母的单一图片。我知道这可以手动完成,但我觉得可能有现成的库可以帮助实现这个功能。
b) 使用某种图像处理库,能够渲染带有多种混合效果的文字,比如渐变色、阴影、发光等。我觉得这个方法可能稍微复杂一些,但也许有适合这个需求的工具。
有没有推荐的库或者类似的东西可以用呢?
提前谢谢你们!
布鲁诺
5 个回答
0
你可以看看 pycairo,这是一个和cairo图形库连接的工具。它不仅可以画图,还能处理文字的显示。
3
我们正在使用Imagemagick。
http://www.imagemagick.org/Usage/text/#attributes
这段代码会生成一个带有文字的简单按钮:
convert -background white -fill dodgerblue -font Candice -strokewidth 2 -stroke blue -undercolor lightblue -size 165x70 -gravity center label:Anthony label_color.gif
把这个封装成一个Python模块非常简单。
2
虽然现在我更倾向于使用网页字体和CSS,但几年前我遇到了一个问题,于是做了一个小项目,可以根据传入的URL参数在一个模板图片上生成文本。
这个项目现在还可以在这里找到:https://bitbucket.org/jsbueno/dynabutton。它是作为一个CGI脚本工作的,但也可以很容易地调整为在更高效的服务器上运行(如果你打算放到网上,我建议你做一些安全设置)。你还可以用它生成所有的图片,使用服务器端脚本,然后把生成的图片文件放到网上。
(它底层使用了PIL库)
哦,对了,它可以根据合适的参数做阴影和发光效果,可以使用任何在服务器上安装的字体,并且会使用一个图片模板作为背景,这样你可以手动应用任何效果。(不过,里面的模板看起来有点业余)