GTK+-2.0 获取窗口背景像素图
Posted
技术标签:
【中文标题】GTK+-2.0 获取窗口背景像素图【英文标题】:GTK+-2.0 get window background pixmap 【发布时间】:2013-07-26 23:25:04 【问题描述】:我正在寻找一种使用 GTK+-2.0 存储窗口当前背景像素图的方法
我找到了这个函数:gdk_window_set_back_pixmap()
,它允许将像素图设置为背景,但我找不到任何可以让我做相反的事情 - 即获取背景像素图。
【问题讨论】:
【参考方案1】:您找不到这样的功能,因为没有。来自X Windows FAQ:
Subject: 174) XGetWindowAttributes 能否获取窗口的背景 像素/像素图?
没有。一旦设置,窗口的背景像素或像素图就不能 客户重读。这样做的原因是客户可以创建一个 pixmap,设置为窗口的背景像素图,然后释放 像素图。窗口保持这个背景,但像素图本身是 被摧毁。如果您确定窗口有背景像素(不是 pixmap), 可以使用
XClearArea()
清除一个区域到后台 颜色,然后使用XGetImage()
读回该像素。然而,这 action 改变了窗口的内容,并且它受到竞争的影响 条件与暴露。 [由 NCD 和 Stuart 的 Dave Lemke 提供 太阳印记]
由于 GTK 是 X11 原语的一个相当简单的包装器,它提供的功能并没有超出 X11 所能提供的范围。
【讨论】:
【参考方案2】:我可以推荐这个方法
创建相同大小的子窗口,具有以下属性 背景像素图是 ParentRelative GCTileStipXOrigin 和 GCTileStipYOrigin 为零 GCFillStyle 是 FillTiled 不要映射它 用 XClearWindow 清除它 使用 XGetImage 获取其内容可能会工作:-)
【讨论】:
以上是关于GTK+-2.0 获取窗口背景像素图的主要内容,如果未能解决你的问题,请参考以下文章