pygtk只在一个pixbu中加载图像流

2024-04-26 13:18:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试嵌入一个chartdrawer库,它只能在缓冲区中提供bmp图像。在

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

绘图方法称为每50ms

调用垃圾回收器非常耗费CPU。在

有没有办法让所有进程只有一个pixbuf而不必调用gc?在

还是我做错了什么?在

如果有任何帮助,请提前

拉斐尔

代码:

  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()

Tags: theselfgtkgetbufferchartloadloader
1条回答
网友
1楼 · 发布于 2024-04-26 13:18:00

你不需要打电话给垃圾回收员。Python会自动进行垃圾回收。在方法的末尾,pixbuf超出了范围(您也不需要“del pixbuf”),并将被自动垃圾回收。所以对于初学者来说,删除方法的最后两行。在

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

相关问题 更多 >