2012-10-31 5 views
4

저는 카이로에 익숙하지 않으며 웹 사이트에서 자습서/문서를 읽었습니다. 이제 선, 사각형을 만들 수 있으며 기본적으로 이미지는 렌더링 할 수 있지만 텍스트는 렌더링 할 수 없습니다.카이로에서 텍스트를 렌더링 할 수 없습니다.

나는

cairo_select_font_face (cr, "monospace", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAl); 

    cairo_set_font_size (cr, 14); 

    cairo_set_source_rgb (cr, 1, 1, 1); 

    cairo_move_to (cr, 50, 50); 

    cairo_show_text (cr, "Print Something"); 

이 사람이 내 실수를 가리시겠습니까 다음 코드를 사용하고?

+0

아래의 대답은 아닙니다. 그러나 흰색으로 그려져있는 것처럼 보입니다. 이것은 내 비슷한 문제에 대한 해결책으로 밝혀졌습니다. 특히 source_rgb를 설정하려면?)? – gauteh

답변

2

같은 (어딘가에 잃어버린 것 같습니다) 카이로 메일 링리스트에 같은 대답 : 당신은 아무것도 잘못하지 말자고

(아마도 장난감 텍스트 API를 사용하여, 잘하지만, 여전히 작동해야하는) 귀하의 코드는 저에게 잘 작동합니다. 여기에 테스트 한 전체 코드가 나와 있습니다.

#include <cairo.h> 
int main() 
{ 
     cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 200, 200); 
     cairo_t *cr = cairo_create(surface); 
     cairo_surface_destroy(surface); 

     /* Fill everything with white */ 
     cairo_set_source_rgb(cr, 1, 1, 1); 
     cairo_paint(cr); 

     /* Draw some text */ 
     cairo_select_font_face (cr, "monospace", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); 
     cairo_set_font_size (cr, 14); 
     cairo_set_source_rgb (cr, 0, 0, 0); 
     cairo_move_to (cr, 0, 50); 
     cairo_show_text (cr, "Print Something"); 

     cairo_surface_write_to_png(cairo_get_target(cr), "out.png"); 
     cairo_destroy(cr); 
     return 0; 
} 
+0

안녕하세요, 감사합니다. 나는 내 자신의 잘못이 무엇인지 잘 모릅니다. 나는 u가 쓴 것과 같은 코드를 시도했지만 아무 것도 볼 수 없다. 잘하면, 곧 정렬 할 수있을 것입니다. 그런 다음 여기에 잘못된 것을 게시 할 것입니다. –

+0

위의 전체 샘플이 효과가 없습니까? 어떤 카이로 버전을 사용하고 있습니까? printf ("% d \ n", (int) cairo_status (cr))를 추가 할 수 있습니까? cairo_destroy()를 호출하기 전에? 모든 것이 OK라면 0을 출력해야한다고 생각합니다. –

+0

나는 그것을 인쇄하고 나는 35를 얻는다 ("카이로 상태 장치 오류"). 그러나 사각형을 그릴 때 텍스트가 보이면 왜 오류가 발생합니까? –

관련 문제