2016-10-03 47 views
1

如何設置或更改GdkPixbuf.Pixbuf的顏色?Python Gtk3從Gdk.RGBA或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開頭的問題,它必須是一個數。

回答

1

哇,這很難。我終於找到了一個解決方案:

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)的代碼,並和http://nullege.com/幫我找到這個。

相關問題