2012-05-10 55 views
1

我目前在python中使用gtk.pixbuf。在API中,subpixbuf功能被描述爲返回與所述原始PIXBUF共享數據的PIXBUF:合併gtk subpixbufs

的subpixbuf()方法創建表示PIXBUF中的一個子區域中的新gtk.gdk.Pixbuf。新的pixbuf與原始pixbuf共享其像素,因此寫入一個會影響兩者。

但是......

當我試圖劃分在subpixbuf列表的pixbuf的和值分配到每個項目,原來的pixbuf保持不變。

animation.subpixbuf=[] 
animation.pixbuf.fill(self.LIGHT_SQ_COLOR) 
for i in range(64) : 
    animation.subpixbuf += [animation.pixbuf.subpixbuf((7-i%8)*self.sq_width (i/8)*self.sq_width,w,w)] 
    animation.subpixbuf[i]=self.squares[63-i] 

關於如何從一堆subpixbufs組成一個pixbuf的任何想法?

謝謝。

回答

1

當你做animation.subpixbuf[i]=self.squares[63-i]時,你將subpixbuf[i]分配給一個新的Pixbuf對象。您不會更改以前存儲在subpixbuf[i]中的Pixbuf。

要做你想做的事你應該看看Pixbuf類的copy_area方法。

+0

非常感謝讓我回到軌道上。我不敢相信我錯過了那個!我在另一個使用像素映射的解決方案,但你的聽起來更好,更直接。我一定會用它! –