버퍼에 bmp 이미지 만 줄 수있는 chartdrawer 라이브러리를 임베드하려고합니다.pygtk 하나의 pixbuf에만 이미지 플로우로드하기
이 이미지를로드 중이며 새로 생성 된 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()
왜 pixbuf를 삭제하고 gc.collect()를 호출해야합니까? 당신이 혼자서 bmp 파일을 업 패닝하지 않는 한 동일한 pixbuff를 사용하는 것은 불가능합니다. –