2011-11-10 3 views
0

나는 gtk.gdk.Pixmap의 인스턴스를 만들고 그 위에 무언가를 그렸습니다. 예를 들어 :gtk.gdk.Pixmap의 크기를 조정하는 방법

pixmap = gtk.gdk.Pixmap(widget.window,100,800) 
pixmap.draw_rectangle(gc, True, 0, 0, 100, 800) 
pixmap.draw_line(gc, 0, 0,100, 800) 

은 어떻게 Pixmap 크기를 조정 할 수 있습니까? 내가 보는 한 가지 방법은 다음 Pixbuf 크기를 조정 gtk.gdk.Pixbuf.get_from_drawable를 사용하여 PixBufPixmap을 복사 한 다음 모든 복사하지 않고이 작업을 수행 할 수있는 방법이있는 Pixmap

Pixbuf을 복사하는 것입니다?

답변

1

불행히도이 모든 복사가 없으면 불가능합니다. GdkPixmap 및 GdkPixbuf는 카이로의 지원을받지 않습니다.

1

실제로 이러한 요소는 사용되지 않습니다.

더 중요한 것은 GdkPixmap은 X 서버의 메모리에있는 pixmap의 내용 인 서버 측 리소스입니다. get_from_drawable()을 수행하면 해당 내용이 응용 프로그램에 전송되도록 요청하는 중입니다. 이는 비용이 많이 듭니다.

대신 카이로 이미지 서페이스를 만들고 거기에 그림을 그립니다. 이것은 클라이언트 측 리소스이므로 성능 저하가 발생하지는 않습니다. 이미지 표면은 적절한 변형을 통해 다른 표면에 그려줌으로써 스케일을 조정할 수 있습니다.

+0

멋지다. 실제로 복제에는 서버 - 클라이언트 왕복과 관련된 내용이 포함되지 않았다. – plaes

관련 문제