【发布时间】:2014-02-20 17:33:28
【问题描述】:
我正在阅读word-clouds 上的本教程,它需要光栅化字符串的形状。然后可以计算字形与numpy 的交集。
教程中的作者抱怨Python Image Library。更直接的方法,可能是使用pyCairo。但是,我无法找到每个字形对应的位掩码。
理想情况下,我想输入 1 并返回一些 1 和零的集合,我可以将其放入 numpy。
0000011100000
0000111100000
0001111100000
0000011100000
0000011100000
0000011100000
0000011100000
0000011100000
1111111111111
1111111111111
这是我对 Cairo 的尝试,但我无法从 Cairo 中取出位掩码或绘制它或其他任何东西:
import cairo as cr
WIDTH, HEIGHT = 256, 256
surface = cairo.ImageSurface (cairo.FORMAT_ARGB32, WIDTH, HEIGHT)
ctx = cairo.Context (surface)
ctx.set_source_rgb(0.0, 0.0, 0.0)
ctx.select_font_face("Georgia", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_BOLD)
ctx.set_font_size(1.2)
x_bearing, y_bearing, width, height = ctx.text_extents("a")[:4]
ctx.move_to(0.5 - width / 2 - x_bearing, 0.5 - height / 2 - y_bearing)
ctx.show_text("a")
事实上,获取数字的 ascii 表示的任何可靠方法都可能是合适的。
【问题讨论】:
-
你可以开始调试这个,使用表面 write_to_png 来检查输出是否是你认为的。