注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

jasy.ice 的小房子

iceplayer gtk linux c

 
 
 

日志

 
 

获取壁纸(转?)  

2010-04-08 13:19:50|  分类: GTK |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
获取壁纸,翻笔记看到的,不记得是在其他网站看到的还是童靴给的。。

#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <X11/Xatom.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    GdkDisplay *display = NULL;
    GdkScreen *screen = NULL;
    GdkWindow *window = NULL;
    GdkColormap *cmap = NULL;
    GdkPixmap *pixmap = NULL;
    GdkPixbuf *pixbuf = NULL;
    Pixmap *prop_data = NULL;
    GdkAtom prop_type;
    int w, h;

    gtk_init(&argc, &argv);

    screen = gdk_screen_get_default();                               // 获取默认的screen
    display = gdk_screen_get_display(screen);                    // 获取screen对应的display
    window = gdk_screen_get_root_window(screen);          // 获取根窗口
    cmap = gdk_screen_get_default_colormap(screen);       // 获取screen的色彩表

    if (!gdk_property_get(window,                                       // 获取窗口图片
                          gdk_atom_intern_static_string
                          ("_XROOTPMAP_ID"),
                          gdk_x11_xatom_to_atom(XA_PIXMAP), 0, 10,
                          FALSE, &prop_type, NULL, NULL,
                          (guchar **) & prop_data))
        return -1;
    if ((prop_type == GDK_TARGET_PIXMAP) && prop_data && prop_data[0]) {
        pixmap = gdk_pixmap_foreign_new_for_display(display,prop_data[0]);
        gdk_drawable_set_colormap(pixmap, cmap);
        gdk_drawable_get_size(pixmap, &w, &h);                // 获取图片长宽
        pixbuf =gdk_pixbuf_get_from_drawable(NULL, pixmap, cmap,
                                         0, 0, 0, 0, w, h);                       //获取pixbuf数据
        gdk_pixbuf_save(pixbuf, "bg.jpg", "jpeg", NULL, "quality",
                        "100", NULL);                                           // 将图片存为jpg格式
        g_object_unref(pixmap);
        g_object_unref(pixbuf);
        free(prop_data);
    }
  评论这张
 
阅读(477)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018