On 21/07/10 22:31, Tim Evans wrote: > On 2010-07-21 19:24, Andrew wrote: >> >> Thanks for the reply. >> >> That doesn't seem to work for me, it gives the image attached. I have >> also tried this with other icon themes (GNOME, Tango) and the results >> are still similiar. >> >> Is this just a bug in GTK? >> > > I can't be sure, but it looks like the image returned by render_icon > with size 'button' is 16-by-16 for you, whereas it's 20-by-20 for me. I > guess your system is configured differently. This means that sampling a > 20-by-20 area in composite gets some pixels that are outside the area of > the icon. Try this for the general case: > > small = widget.render_icon('gtk-ok', 'button') > w = small.get_width() > h = small.get_height() > large = gtk.gdk.Pixbuf('rgb', True, 8, 10 + w, 10 + h) > large.fill(0) > assert large.get_has_alpha() > assert small.get_has_alpha() > small.composite(large, 0, 0, w, h, 0, 0, 1, 1, 'nearest', 255) > small.composite(large, 5, 5, w, h, 5, 5, 1, 1, 'nearest', 255) > small.composite(large, 10, 10, w, h, 10, 10, 1, 1, 'nearest', 255) > large.save('test.png', 'png') > > Personally I would consider the behaviour of composite when sampling an > area larger than the scaled source to be a minor bug. It can be worked > around pretty easily, but I can't imagine any situation where the > current behaviour would be useful. As you've demonstrated it can be > higher counter-intuitive. >
Thanks very much Tim, it works now :) -- Andrew _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/