2013-08-05 14 views
6

Próbuję konwersji tekstu na krzywe i ścieżek na przykład:Jak przekonwertować tekst na ścieżki?

Text = "Witamy Pythona

Próbuję przekonwertować ten tekst do ścieżki. Próbuję również uzyskać tę informację o ścieżce jako listę punktów.

Chcę przechowywać tekst jako ścieżki w pliku SVG.

Podobnie, gdy konwertujesz tekst na kontury wewnątrz programu Adobe Illustrator.

Próbowałem tego przykładu, ale to nie jest to, co chcę: 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

* Dlaczego * ten przykład nie robi tego, co chcesz? –

+1

ponieważ chcę przekonwertować tekst na ścieżkę nie tylko zaznaczając tekst Chcę danych ścieżki jako listy punktów, aby móc go zapisać jako ścieżkę w pliku SVG –

+0

@ TawfiqabuHalawah jeśli znajdziesz rozwiązanie, czy możesz to opublikować? –

Odpowiedz

0

Można użyć Inkscape:

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

uwaga: musisz najpierw zainstalować Inkscape