2013-08-05 2 views
6

나는 예를 들어 커브와 텍스트를 패스로 변환하려고 :텍스트를 경로로 변환하는 방법은 무엇입니까?

텍스트 =

'파이썬에 오신 것을 환영합니다'나는 경로로이 텍스트를 변환하려합니다. 또한이 경로 정보를 포인트 목록으로 가져 오려고합니다.

텍스트를 SVG 파일의 경로로 저장하려고합니다.

텍스트를 예를 들어 Adobe Illustrator에서 윤곽선으로 변환하는 경우와 같습니다.

나는이 예제를 시도했지만이 내가 원하는되지 않습니다 : 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

* 왜 그 예제가 당신이 원하는 것을하지 않습니까? –

+1

텍스트를 경로로 변환하고 싶기 때문에 텍스트를 윤곽선으로 나타내지 않고 원하는 경로 데이터를 svg 파일의 경로로 저장할 수 있습니다. –

+0

@TawfiqabuHalawah 솔루션을 찾으면 게시 할 수 있습니까? –

답변

0

당신이 사용할 수있는 잉크 스케이프 :

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

참고 : 먼저 잉크 스케이프를 설치해야합니다

관련 문제