【问题标题】:GTK+-2.0 get window background pixmapGTK+-2.0 获取窗口背景像素图
【发布时间】:2013-07-26 23:25:04
【问题描述】:

我正在寻找一种使用 GTK+-2.0 存储窗口当前背景像素图的方法

我找到了这个函数:gdk_window_set_back_pixmap(),它允许将像素图设置为背景,但我找不到任何可以让我做相反的事情 - 即获取背景像素图。

【问题讨论】:

    标签: gtk x11


    【解决方案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 获取其内容

      可能会工作:-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-20
        • 2011-04-23
        • 2012-02-15
        • 1970-01-01
        • 1970-01-01
        • 2010-12-12
        • 2011-04-08
        • 1970-01-01
        相关资源
        最近更新 更多