CairoというライブラリのPython バインドでテキストの画像を作る。
サンプルが少なくてわかりにくかった。。
テキストの描画時のサイズをScaledFontを用いてextentsとしてうけとり、
それを使って位置決めしている。
> python test.py TEXT FONTSIZE
のように使う。
import cairo
import sys
WIDTH, HEIGHT = 256, 64
text = sys.argv[1]
fontsize = int(sys.argv[2])
surface = cairo.ImageSurface(cairo.FORMAT_RGB24, WIDTH, HEIGHT)
ctx = cairo.Context(surface)
ctx.set_source_rgb(1, 1, 1) # White
ctx.rectangle(0, 0, WIDTH, HEIGHT) # clear background
ctx.fill()
ctx.set_source_rgb(0,0,0) # Black
ctx.set_font_size(fontsize)
sf = ctx.get_scaled_font()
extents = sf.text_extents(text)
ctx.move_to(WIDTH / 2 - extents.width /2, HEIGHT /2 + extents.height / 2)
ctx.show_text(text)
surface.write_to_png("example.png")
0 件のコメント:
コメントを投稿