Ich bin neu in Kairo, versuche Text mit transparenten Farben und Strichen zu erstellen.
Strichfarbe Transparenz funktioniert, aber Text Füllfarbe Transparenz transparency_value
funktioniert nicht. Wenn i transparency_value
reduzieren, Textfarbe wird nur dunkler (schwarz) und zunehmende transparency_value
Textfarbe heller (grün in meinem Fall)Kairo mit Transparenz füllen
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);
Vielen Dank für Ihre Antwort. Ich hatte 'cairo_move_to' verwendet, sonst würde ich keine Ausgabe sehen. Um den Code kurz zu machen, habe ich 'cairo_move_to' übersprungen. Ich habe den Code aktualisiert. mache ich einen Fehler in der Reihenfolge der Funktionsaufrufe? und haben Sie versucht, 'transparency_value' in Ihrem Code zu ändern? –
Siehe meine Bearbeitung. Ich fügte ein weiteres Bild hinzu, das das Ergebnis mit 'transparency_value = 0.1' zeigt. Das Ergebnis sieht immer noch wie erwartet aus und ich kann das Schwarz, das Sie sehen, nicht reproduzieren. Was mache ich falsch"? –
hmm! ist das ein Fehler in C++ oder ist es möglich, dass ich Cairo mit der FreeType-Bibliothek nicht richtig erstellt habe - also falsche Ausgabe bekommen? –