如何调整gtk.gdk.Pixmap的大小

时间:2011-11-10 08:35:44

标签: python pygtk gtk gdk gdkpixbuf

我创建了一个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的大小?我看到的一种方法是使用PixmapPixBuf复制到gtk.gdk.Pixbuf.get_from_drawable,然后调整Pixbuf的大小,然后将Pixbuf复制到Pixmap 1}}

没有所有复制,有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

不幸的是,没有所有这些复制是不可能的。请注意,GdkPixmap和GdkPixbuf不赞成使用Cairo。

答案 1 :(得分:1)

实际上,这些已被弃用。

更重要的是,GdkPixmap是服务器端资源 - 像素图的内容存在于X服务器的内存中。当你执行get_from_drawable()时,你要求将这些内容传输到你的应用程序,这很昂贵。

相反,创建一个Cairo图像,然后在那里进行绘图。这是一个客户端资源,因此您不会受到性能损失。可以通过适当的变换将图像表面绘制到另一个表面来缩放图像表面。