Re: gdk_pixbuf_composite_color() help needed.



>> Why not just create a GtkImage widget and use that to display your
pixbuf? GtkImage is a subclass of GtkMisc, just like GtkLabel, so it's basically a label that displays an image instead of some text. Use gtk_image_new_from_pixbuf to easily create the widget and set it
to display your pixbuf.
I did that originally,  but the logo has an alpha channel and a 
gentle fade at the edges,  since X11 doesn't natively handle alpha 
channels, the GtkImage clips it and make the logo look like crap. 
(sharp edge) By compositing it with the color of the background it 
has a nice smooth transition,  the problem comes with getting the 
background color in the same format that gdk_pixbuf_composite_color 
accepts (I get the color back in 16 bit,  the gdk call wants it in 
packed 8 bit,  the resolution loss causes errors and leaves unwated 
artifacts onscreen.
If I could find the code to actually take a screenshot of the empty 
space on my app before the pixmap is placed and use that as my 
compositing source, that would solve all of my problems.  Thus far I
haven't figured out how to do that.
The attached screenshot shows a GtkImage displaying a png image with an 
alpha channel (the glade icon).  The shadow on the icon is an alpha 
channel and the GtkImage widget renders it correctly.  The code (in 
Python) was:
import gtk
w = gtk.Window()
i = gtk.Image()
i.set_from_file('glade.png')
w.add(i)
w.show_all()
gtk.main()

Perhaps you need to upgrade your version of GTK, I'm using 2.2.2

--
Tim Evans
Applied Research Associates NZ
http://www.aranz.com/

PNG image



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]