我创建了一个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的大小?我看到的一种方法是使用gtk.gdk.Pixbuf.get_from_drawable将Pixmap复制到PixBuf中,然后调整Pixbuf的大小,然后将Pixbuf复制到Pixmap中
有没有办法在不复制的情况下做到这一点?
发布于 2011-11-11 15:15:08
不幸的是,如果没有所有这些复制,这是不可能的。请注意,为了支持Cairo,GdkPixmap和GdkPixbuf被弃用。
发布于 2011-11-12 06:51:30
实际上,这些已经被弃用了。
更重要的是,GdkPixmap是一个服务器端资源--像素图的内容驻留在X服务器的内存中。当您执行get_from_drawable()时,您请求将这些内容传输到您的应用程序,这是非常昂贵的。
相反,创建一个Cairo图像表面,并在那里进行绘制。这是一个客户端资源,因此您不会得到性能损失。通过使用适当的变换将图像曲面绘制到另一个曲面上,可以缩放图像曲面。
https://stackoverflow.com/questions/8076759
复制相似问题