gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:54 24 4
gpt4 key购买 nike

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

我正在加载此图像,必须在新创建的 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()

最佳答案

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

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

关于python - pygtk 仅在一个 pixbuf 中加载图像流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com