0
我是開羅新手,嘗試使用透明顏色和筆觸創建文本。
描邊顏色的透明度工作,但文字填充顏色透明度transparency_value
不起作用。 如果我減少transparency_value
,文本顏色只是變暗(黑)和增加transparency_value
使文本顏色更亮(綠色在我的情況)開羅填充透明
cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 640, 480);
cairo_t* cairo = cairo_create(surface);
cairo_set_font_face(cairo, myfont_face);
cairo_set_font_size(cairo, 25);
cairo_text_extents_t extents;
cairo_text_extents(cairo, "Hello World", &extents);
cairo_move_to(cairo, 200, 200);
cairo_text_path(cairo, "Hello World");
double transparency_value = 0.5;
cairo_set_source_rgba(cairo, 0,1,0,transparency_value); //transparency doesn't work
//cairo_fill(cairo); //this didn't make a difference
cairo_fill_preserve(cairo);
cairo_set_source_rgba(cairo, 0.56, 0.76, 0.96, 0.5); //transparency works
cairo_set_line_width(cairo, 1.5);
cairo_stroke(cairo);
感謝您的回覆。我曾經使用'cairo_move_to',否則我不會看到輸出。使代碼縮短,我跳過了'cairo_move_to'.I已更新代碼。我是否按照函數調用的順序做了任何錯誤? 並且您是否嘗試在代碼中更改'transparency_value'? –
看我的編輯。我添加了另一張圖片,顯示了'transparency_value = 0.1'的結果。結果仍然看起來如預期,我不能再現你所看到的黑色。我究竟做錯了什麼」? –
嗯!這是C++中的錯誤還是有可能我沒有正確構建cairo與freeType庫 - 所以得到錯誤的輸出? –