2010-12-10 3 views
2

회전 된 행렬에서 Pango 렌더링에 문제가 있습니다. 애니메이션 카이로 행렬의 내부에서 발생하는 레이블 (아래 코드 참조)을 그려 봅니다.카이로에서 텍스트를 회전 할 때 왜 판고의 글꼴이 가중치를 변경합니까?

레이블이 회전함에 따라 텍스트가 커지고 줄어드는 것처럼 보입니다. 기울기가 가장 두껍고 직각으로 가장 가늘게 보입니다. 이 비교를 참조하십시오

http://www5.picturepush.com/photo/a/4666818/640/Anonymous/pango-rotation.jpg

내가 그냥 각도에 따라 텍스트의 모양을 변경하려고 모양 패스를 회전, 그리고 것처럼 회전 된 텍스트를 생성하고 싶습니다. 내가 어떻게이 일을 할 수 있을지에 대한 아이디어가 있니?

감사합니다, 숀

난 단지 앤티 앨리어싱 어설프게하는 것입니다 파이썬,하지 C,하지만 내 첫번째 추측 카이로와 Pango가 사용할 수 있습니다

     //Draw text with Pango 
     PangoLayout *layout; 
     PangoFontDescription *desc; 

     // pCr is the cairomm context ptr. 
     // pCr->cobj() is the underlying C Cairo context ptr. 
     pCr->set_source_rgb(0.0, 0.0, 1.0); 

     layout = pango_cairo_create_layout(pCr->cobj()); 
     // text is the label string 
     pango_layout_set_text(layout, text.c_str(), -1); 

     desc = pango_font_description_from_string("Sans Bold 12"); 
     pango_layout_set_font_description(layout, desc); 

     pango_cairo_layout_path(pCr->cobj(), layout); 
     pCr->fill(); 

     pango_font_description_free(desc); 
     g_object_unref(layout); 

답변

0

:

pCr.set_antialias(cairo.ANTIALIAS_DEFAULT)

(이 파이썬의 문법입니다. C가 아닙니다.

cairo.ANTIALIAS_SUBPIXEL 또는 cairo.ANTIALIAS_NONE을 사용해보십시오. e는 차이입니다.

또한 코드에서 어떤 회전도 찾을 수 없지만, 먼저 회전 한 후 텍스트 (벡터 경로)를 렌더링 (픽셀 화)해야 할 때 텍스트를 회전 한 것일 수 있습니다.

희망이 있습니다.

관련 문제