首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pygtk仅在一个pixbuf中加载图像流

pygtk仅在一个pixbuf中加载图像流
EN

Stack Overflow用户
提问于 2009-06-16 17:18:09
回答 1查看 624关注 0票数 2

我正在尝试嵌入一个只能在缓冲区中提供bmp图像的图表抽屉库。

我正在加载这个图像,并且必须显式地调用新创建的pixbuf上的delete,然后调用垃圾收集器。

绘图方法每50毫秒调用一次

调用垃圾收集器确实会消耗CPU。

有没有一种方法可以让所有进程只有一个pixbuf,而不需要调用gc?

还是我做错了所有的事?

如有任何帮助,请提前向您咨询

拉斐尔

代码:

代码语言:javascript
复制
  def draw(self, drawArea):

        #init bmp loader
        loader = gtk.gdk.PixbufLoader ('bmp')

        #get a bmp buffer
        chart = drawArea.outBMP2()

        #load this buffer
        loader.write(chart)
        loader.close()

        #get the newly created pixbuf        
        pixbuf = loader.get_pixbuf()

        #and load it in the gtk.Image
        self.img.set_from_pixbuf(pixbuf)

        del pixbuf
        gc.collect()
EN

回答 1

Stack Overflow用户

发布于 2009-06-17 03:36:33

您不需要调用垃圾收集器。Python会自动被垃圾回收。在您的方法结束时,pixbuf将超出作用域(您也不需要"del pixbuf"),并且将自动被垃圾收集。因此,对于初学者,删除方法的最后两行。

如果“draw”方法消耗了太多的CPU,你可能还想减少调用它的频率。在大多数应用程序中,我认为用户可以每200毫秒处理一次更新,而不是每50毫秒处理一次,如果每50毫秒就意味着会出现CPU问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1002841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档