首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pygtk:在gtk.gdk.Pixbuf上绘制线条

pygtk:在gtk.gdk.Pixbuf上绘制线条
EN

Stack Overflow用户
提问于 2009-07-31 15:10:42
回答 5查看 5.1K关注 0票数 3

我在PIL中使用pygtk。我已经找到了一种将PIL的Image转换为gtk.gdk.Pixbuf的方法,我要做的就是创建一个gtk.gdk.Image,然后使用img.set_from_pixbuf。现在我想在这张图上画几条线。显然,我需要一个Drawable来做到这一点。我已经开始浏览文档了,但我已经打开了8-10个窗口,这一点也不简单。

那么,我需要输入什么魔法才能得到一个代表我的图片的可绘制图形,在上面画一些东西,然后把它变成一个gdk.Image,这样我就可以在我的应用程序上显示它了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-31 16:25:41

我正在做类似的事情(绘制到gdk.Drawable),我发现set_foreground不能工作。为了实际使用我想要的颜色来绘制,我使用了以下方法:

代码语言:javascript
复制
# Red!
gc.set_rgb_fg_color(gtk.gdk.Color(0xff, 0x0, 0x0))
票数 4
EN

Stack Overflow用户

发布于 2009-07-31 15:32:50

我的天啊。太痛苦了。这就是它:

代码语言:javascript
复制
    w,h = pixbuf.get_width(), pixbuf.get_height()
    drawable = gtk.gdk.Pixmap(None, w, h, 24)
    gc = drawable.new_gc()
    drawable.draw_pixbuf(gc, pixbuf, 0, 0, 0, 0, -1, -1)

    #---ACTUAL DRAWING CODE---
    gc.set_foreground(gtk.gdk.Color(65535, 0, 0))
    drawable.draw_line(gc, 0, 0, w, h)
    #-------------------------

    cmap = gtk.gdk.Colormap(gtk.gdk.visual_get_best(), False)
    pixbuf.get_from_drawable(drawable, cmap, 0, 0, 0, 0, w, h)

它实际上画了一条黑线自动取款机,而不是红色的,所以我还有一些工作要做…

票数 3
EN

Stack Overflow用户

发布于 2009-07-31 15:20:59

您尝试过cairo上下文吗?对不起,我似乎不能评论你的帖子。因此我把它贴在了这里。

我自己还没有尝试过,但我相信当涉及到gtk绘图时,cairo是您的朋友。您可以将cairo上下文的源设置为pixbuf,因此我认为这对您是有用的。

gdkcairocontext

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1213090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档