2013-08-05 14 views
6

私は、例えば、曲線とパスにテキストを変換しようとしています:=「のpythonへようこそ」テキストをパスに変換するには?

テキスト

私はパスにこのテキストを変換しようとしています。 また、このパス情報をポイントのリストとして取得しようとしています。

テキストをSVGファイルのパスとして保存します。

たとえば、テキストをAdobe Illustrator内のアウトラインに変換するときのように。

私はこの例を試してみましたが、これは私が欲しいものではありません: あなたはInkscapeの使用することができますcairo example

import cairo 

def text_extent(font, font_size, text, *args, **kwargs): 
    surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 0, 0) 
    ctx = cairo.Context(surface) 
    ctx.select_font_face(font, *args, **kwargs) 
    ctx.set_font_size(font_size) 
    return ctx.text_extents(text) 

text='Example' 
font="Sans" 
font_size=55.0 
font_args=[cairo.FONT_SLANT_NORMAL] 
(x_bearing, y_bearing, text_width, text_height, 
x_advance, y_advance) = text_extent(font, font_size, text, *font_args) 
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, int(text_width), int(text_height)) 
ctx = cairo.Context(surface) 
ctx.select_font_face(font, *font_args) 
ctx.set_font_size(font_size) 
ctx.move_to(-x_bearing, -y_bearing) 
ctx.text_path(text) 
ctx.set_source_rgb(0.47, 0.47, 0.47) 
ctx.fill_preserve() 
ctx.set_source_rgb(1, 0, 0) 
ctx.set_line_width(1.5) 
ctx.stroke() 

surface.write_to_png("/tmp/out.png") 
+1

最初のInkscapeをインストールする必要がありますが*なぜ*その例はあなたが望むことをしないのですか? –

+1

私はテキストをパスに変換したいからテキストの輪郭だけではなく、ポイントのリストとしてパスデータをsvgファイルのパスとして保存したい場合 –

+0

@TawfiqabuHalawah解決策が見つかったら、それを投稿できますか? –

答えて

0

import subprocess 
subprocess.call("inkscape in.svg --export-text-to-path --export-plain-svg out.svg", shell = True) 

注:

関連する問題