Je suis nouveau au Caire, en essayant de créer du texte avec des couleurs transparentes et un trait.
La transparence de la couleur de trait fonctionne mais la couleur de remplissage du texte n'est pas transparente transparency_value
ne fonctionne pas. Si je réduis transparency_value
, la couleur du texte devient juste plus sombre (noir) et de plus en plus transparency_value
fait (dans mon cas vert) plus lumineux de couleur du texteCairo Fill with Transparency
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);
Merci pour votre réponse. J'avais utilisé 'cairo_move_to', sinon je ne verrais pas de sortie. pour faire du code court, j'avais sauté 'cairo_move_to'. J'ai mis à jour le code. Est-ce que je fais une erreur dans l'ordre des appels de fonction? et avez-vous essayé de changer 'transparency_value' dans votre code? –
Voir ma modification. J'ai ajouté une autre image montrant le résultat avec 'transparency_value = 0.1'. Le résultat semble toujours comme prévu et je ne peux pas reproduire le noir que vous voyez. Qu'est-ce que je fais mal"? –
hmm! est-ce un bug en C++ ou est-il possible que je n'ai pas construit cairo avec la librairie freeType correctement - donc obtenir une mauvaise sortie? –