我现在正在使用python中的gtk.pixbuf。在API中,subpixbuf函数被描述为返回一个与原始pixbuf共享数据的pixbuf:
subpixbuf()方法创建一个新的gtk.gdk.Pixbuf,它表示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的任何想法?
感谢。
答案 0 :(得分:1)
执行animation.subpixbuf[i]=self.squares[63-i]
时,您将subpixbuf[i]
分配给新的Pixbuf对象。您没有更改以前存储在subpixbuf[i]
中的Pixbuf。
要做你想做的事,你应该看一下Pixbuf类的copy_area
方法。