Python Gtk3 将 GdkPixbuf.Pixbuf 的颜色从 Gdk.RGBA 或 Gdk.Color 设置或更改

Python Gtk3 set or change color for GdkPixbuf.Pixbuf from Gdk.RGBA or Gdk.Color

如何设置或更改 GdkPixbuf.Pixbuf 的颜色?

我可以创建和填充:

pixbuf = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, False, 8, 32, 16)
pixbuf.fill(0x000000)

但是如何从 Gdk.RGBA 或 Gdk.Color 中获取颜色?

编辑:

我现在尝试了很多东西,但没有任何效果,例如:

import webcolors
from gi.repository import Gdk
color = Gdk.color_parse("orange")
hexe = webcolors.rgb_to_hex(color.to_floats()) 

但是我还是有问题,我需要0x开头,而且必须是数字。

哇,这太难了。我终于找到了解决方案:

pixbuf = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, True, 8, 16, 16)
color =  Gdk.color_parse("orange")
fillr = (color.red / 256) << 24
fillg = (color.green / 256) << 16
fillb = (color.blue / 256) << 8
fillcolor = fillr | fillg | fillb | 255
pixbuf.fill(fillcolor)

感谢 starcal(https://github.com/ilius/starcal/blob/master/scal3/ui_gtk/desktop.py) for the code and and to http://nullege.com/ 帮我找到了这个。