我创建了一个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
的大小?我看到的一种方法是使用Pixmap
将PixBuf
复制到gtk.gdk.Pixbuf.get_from_drawable
,然后调整Pixbuf
的大小,然后将Pixbuf
复制到Pixmap
1}}
没有所有复制,有没有办法做到这一点?
答案 0 :(得分:1)
不幸的是,没有所有这些复制是不可能的。请注意,GdkPixmap和GdkPixbuf不赞成使用Cairo。
答案 1 :(得分:1)
实际上,这些已被弃用。
更重要的是,GdkPixmap是服务器端资源 - 像素图的内容存在于X服务器的内存中。当你执行get_from_drawable()时,你要求将这些内容传输到你的应用程序,这很昂贵。
相反,创建一个Cairo图像,然后在那里进行绘图。这是一个客户端资源,因此您不会受到性能损失。可以通过适当的变换将图像表面绘制到另一个表面来缩放图像表面。