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/ 帮我找到了这个。
如何设置或更改 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/ 帮我找到了这个。