亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? testpixbuf-save.c

?? Linux下gtk圖形界面開發(fā)的各種gtk控件調(diào)用方法示例
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */#include "config.h"#include <stdio.h>#include <gtk/gtk.h>static voidcompare_pixbufs (GdkPixbuf *pixbuf, GdkPixbuf *compare, const gchar *file_type){        if ((gdk_pixbuf_get_width (pixbuf) !=             gdk_pixbuf_get_width (compare)) ||            (gdk_pixbuf_get_height (pixbuf) !=             gdk_pixbuf_get_height (compare)) ||            (gdk_pixbuf_get_n_channels (pixbuf) !=             gdk_pixbuf_get_n_channels (compare)) ||            (gdk_pixbuf_get_has_alpha (pixbuf) !=             gdk_pixbuf_get_has_alpha (compare)) ||            (gdk_pixbuf_get_bits_per_sample (pixbuf) !=             gdk_pixbuf_get_bits_per_sample (compare))) {                fprintf (stderr,                         "saved %s file differs from copy in memory\n",                         file_type);        } else {                guchar *orig_pixels;                guchar *compare_pixels;                gint    orig_rowstride;                gint    compare_rowstride;                gint    width;                gint    height;                gint    bytes_per_pixel;                gint    x, y;                guchar *p1, *p2;                gint    count = 0;                orig_pixels = gdk_pixbuf_get_pixels (pixbuf);                compare_pixels = gdk_pixbuf_get_pixels (compare);                orig_rowstride = gdk_pixbuf_get_rowstride (pixbuf);                compare_rowstride = gdk_pixbuf_get_rowstride (compare);                width = gdk_pixbuf_get_width (pixbuf);                height = gdk_pixbuf_get_height (pixbuf);                /*  well...  */                bytes_per_pixel = gdk_pixbuf_get_n_channels (pixbuf);                p1 = orig_pixels;                p2 = compare_pixels;                for (y = 0; y < height; y++) {                        for (x = 0; x < width * bytes_per_pixel; x++)                                count += (*p1++ != *p2++);                        orig_pixels += orig_rowstride;                        compare_pixels += compare_rowstride;                        p1 = orig_pixels;                        p2 = compare_pixels;                }                if (count > 0) {                        fprintf (stderr,                                 "saved %s file differs from copy in memory\n",                                 file_type);                }        }}static gbooleansave_to_loader (const gchar *buf, gsize count, GError **err, gpointer data){        GdkPixbufLoader *loader = data;        return gdk_pixbuf_loader_write (loader, buf, count, err);}static GdkPixbuf *buffer_to_pixbuf (const gchar *buf, gsize count, GError **err){        GdkPixbufLoader *loader;        GdkPixbuf *pixbuf;        loader = gdk_pixbuf_loader_new ();        if (gdk_pixbuf_loader_write (loader, buf, count, err) &&             gdk_pixbuf_loader_close (loader, err)) {                pixbuf = g_object_ref (gdk_pixbuf_loader_get_pixbuf (loader));                g_object_unref (loader);                return pixbuf;        } else {                return NULL;        }}static voiddo_compare (GdkPixbuf *pixbuf, GdkPixbuf *compare, GError *err){        if (compare == NULL) {                fprintf (stderr, "%s", err->message);                g_error_free (err);        } else {                compare_pixbufs (pixbuf, compare, "jpeg");                g_object_unref (compare);        }}static voidkeypress_check (GtkWidget *widget, GdkEventKey *evt, gpointer data){        GdkPixbuf *pixbuf;        GtkDrawingArea *da = (GtkDrawingArea*)data;        GError *err = NULL;        gchar *buffer;        gsize count;        GdkPixbufLoader *loader;        pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (da), "pixbuf");        if (evt->keyval == 'q')                gtk_main_quit ();        if (evt->keyval == 's' && (evt->state & GDK_CONTROL_MASK)) {                /* save to callback */                if (pixbuf == NULL) {                        fprintf (stderr, "PIXBUF NULL\n");                        return;                }	                loader = gdk_pixbuf_loader_new ();                if (!gdk_pixbuf_save_to_callback (pixbuf, save_to_loader, loader, "jpeg",                                                  &err,                                                  "quality", "100",                                                  NULL) ||                    !gdk_pixbuf_loader_close (loader, &err)) {                        fprintf (stderr, "%s", err->message);                        g_error_free (err);                } else {                        do_compare (pixbuf,                                    g_object_ref (gdk_pixbuf_loader_get_pixbuf (loader)),                                    err);                        g_object_unref (loader);                }        }        else if (evt->keyval == 'S') {                /* save to buffer */                if (!gdk_pixbuf_save_to_buffer (pixbuf, &buffer, &count, "jpeg",                                                &err,                                                "quality", "100",                                                NULL)) {                        fprintf (stderr, "%s", err->message);                        g_error_free (err);                } else {                        do_compare (pixbuf,                                    buffer_to_pixbuf (buffer, count, &err),                                    err);                }        }        else if (evt->keyval == 's') {                /* save normally */                if (pixbuf == NULL) {                        fprintf (stderr, "PIXBUF NULL\n");                        return;                }	                if (!gdk_pixbuf_save (pixbuf, "foo.jpg", "jpeg",                                      &err,                                      "quality", "100",                                      NULL)) {                        fprintf (stderr, "%s", err->message);                        g_error_free (err);                } else {                        do_compare (pixbuf,                                    gdk_pixbuf_new_from_file ("foo.jpg", &err),                                    err);                }        }        if (evt->keyval == 'p' && (evt->state & GDK_CONTROL_MASK)) {                /* save to callback */                if (pixbuf == NULL) {                        fprintf (stderr, "PIXBUF NULL\n");                        return;                }                loader = gdk_pixbuf_loader_new ();                if (!gdk_pixbuf_save_to_callback (pixbuf, save_to_loader, loader, "png",                                                  &err,                                                  "tEXt::Software", "testpixbuf-save",                                                  NULL)                    || !gdk_pixbuf_loader_close (loader, &err)) {                        fprintf (stderr, "%s", err->message);                        g_error_free (err);                } else {                        do_compare (pixbuf,                                    g_object_ref (gdk_pixbuf_loader_get_pixbuf (loader)),                                    err);                        g_object_unref (loader);                }        }        else if (evt->keyval == 'P') {                /* save to buffer */                if (!gdk_pixbuf_save_to_buffer (pixbuf, &buffer, &count, "png",                                                &err,                                                "tEXt::Software", "testpixbuf-save",                                                NULL)) {                        fprintf (stderr, "%s", err->message);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情视频一区二区在线观看 | 自拍偷拍亚洲综合| 一个色在线综合| 免费成人深夜小野草| 成人午夜在线播放| 日韩三级在线观看| 一区二区三区日韩精品视频| 免费在线看一区| 亚州成人在线电影| 91久久国产综合久久| 精品粉嫩aⅴ一区二区三区四区| 欧美电影免费观看高清完整版在| 中文字幕在线不卡| 国产乱一区二区| 欧美一区二区三区免费观看视频 | 不卡欧美aaaaa| 日韩天堂在线观看| 天天综合色天天综合色h| 不卡的av电影| 欧美激情一二三区| 国产原创一区二区| 精品久久久久久久人人人人传媒 | 欧美视频完全免费看| 一区在线观看免费| 成人动漫精品一区二区| 国产午夜精品福利| 国产一区二区三区在线观看免费视频| 91精品国产综合久久精品麻豆| 一区二区三区小说| 色欧美乱欧美15图片| 亚洲人成伊人成综合网小说| 成人黄页在线观看| 国产精品不卡视频| 色综合视频一区二区三区高清| 国产精品久久久久久久久果冻传媒 | 久久久一区二区三区| 日韩成人免费电影| 日韩女优av电影| 精品无码三级在线观看视频| 精品处破学生在线二十三| 久久99精品久久久久婷婷| 精品久久久久久久人人人人传媒| 国产真实乱子伦精品视频| 久久精品综合网| 波多野结衣欧美| 一区二区三区久久| 欧美美女bb生活片| 奇米色一区二区| 久久综合成人精品亚洲另类欧美 | 99国产精品久久久| 亚洲制服丝袜在线| 91精品综合久久久久久| 国产中文字幕一区| 中文字幕在线观看不卡| 欧美在线播放高清精品| 日本系列欧美系列| 日本一区二区三区久久久久久久久不| 成人丝袜视频网| 亚洲电影一区二区三区| 欧美大度的电影原声| a在线播放不卡| 亚洲国产精品久久不卡毛片| 欧美一区二区大片| 不卡的电视剧免费网站有什么| 一区二区三区在线免费观看 | 欧美在线啊v一区| 精品一区二区三区在线播放| 成人免费一区二区三区视频 | 日韩精品视频网站| 久久久777精品电影网影网| 色哟哟亚洲精品| 久久精品国产亚洲一区二区三区| 亚洲欧洲一区二区在线播放| 欧美另类videos死尸| 国产精品12区| 午夜亚洲国产au精品一区二区| 久久久精品免费免费| 欧美揉bbbbb揉bbbbb| 成人一区二区在线观看| 天天做天天摸天天爽国产一区| 欧美国产禁国产网站cc| 日韩一区二区精品葵司在线| 99re热这里只有精品免费视频| 欧美a一区二区| 亚洲最大成人网4388xx| 久久嫩草精品久久久精品一| 欧美影片第一页| 成人午夜伦理影院| 精品一区二区三区在线播放视频| 一区二区三区鲁丝不卡| 国产视频亚洲色图| 日韩免费观看高清完整版 | 综合激情成人伊人| 精品卡一卡二卡三卡四在线| 欧美日韩中文国产| 9久草视频在线视频精品| 免费美女久久99| 一区二区欧美在线观看| 中文字幕一区av| 国产亚洲欧美日韩俺去了| 精品日韩一区二区| 欧美一区二区女人| 欧美精三区欧美精三区| 在线免费观看不卡av| 91丝袜美腿高跟国产极品老师 | 国产网红主播福利一区二区| 91精品国产综合久久小美女| 欧洲在线/亚洲| 91成人免费在线| 色综合天天综合网天天狠天天 | 九九九精品视频| 美女视频免费一区| 免费久久99精品国产| 日韩av一区二区在线影视| 午夜激情综合网| 亚洲www啪成人一区二区麻豆| 一区二区在线看| 亚洲五码中文字幕| 亚洲一区二区三区四区在线观看 | 免费观看一级特黄欧美大片| 亚洲综合男人的天堂| 亚洲妇熟xx妇色黄| 天天色天天操综合| 免费欧美高清视频| 韩日欧美一区二区三区| 国产精品亚洲成人| av日韩在线网站| 91久久国产最好的精华液| 欧美在线观看视频一区二区| 欧美在线999| 欧美顶级少妇做爰| 精品国产伦一区二区三区免费| 欧美草草影院在线视频| 久久久99免费| 一区二区三区在线影院| 午夜日韩在线观看| 国产美女视频91| 日本高清不卡视频| 91麻豆精品国产自产在线| 久久久久久久久99精品| 中文字幕一区二区三区不卡| 亚洲一级二级三级在线免费观看| 日产国产欧美视频一区精品 | 精品久久国产老人久久综合| 久久久无码精品亚洲日韩按摩| 国产精品盗摄一区二区三区| 夜夜操天天操亚洲| 久久福利资源站| av电影在线观看一区| 欧美日韩你懂得| 久久久久青草大香线综合精品| 国产精品久久久久久久久久久免费看| 亚洲成av人影院在线观看网| 韩国精品一区二区| 91成人免费在线视频| 精品精品欲导航| 亚洲女同女同女同女同女同69| 日本成人在线电影网| 粗大黑人巨茎大战欧美成人| 欧美日韩亚洲综合在线| 中文字幕乱码久久午夜不卡 | 久久精品一区二区| 亚洲大片精品永久免费| 国产一区二区三区久久悠悠色av| 在线观看不卡一区| 日本一区二区成人| 免费在线观看日韩欧美| 99re热这里只有精品免费视频| 欧美本精品男人aⅴ天堂| 亚洲久本草在线中文字幕| 国精产品一区一区三区mba桃花 | 欧美三日本三级三级在线播放| 精品国偷自产国产一区| 亚洲亚洲精品在线观看| 成人国产在线观看| 26uuu亚洲综合色| 日韩av中文在线观看| 91高清视频免费看| 国产精品久99| 国产成人8x视频一区二区| 日韩视频一区二区三区在线播放 | 青青草精品视频| 欧美日韩亚洲综合一区二区三区| 中文字幕免费不卡| 风间由美一区二区三区在线观看 | 91精品国产综合久久精品麻豆| 亚洲男人的天堂一区二区| 丁香六月久久综合狠狠色| 日韩免费电影一区| 日韩国产高清在线| 欧美绝品在线观看成人午夜影视| 亚洲日本在线视频观看| 高清成人在线观看| 欧美国产日韩在线观看| 国产成人精品免费一区二区| 精品国产乱码久久久久久1区2区 | 99在线精品免费| 国产三级一区二区| 国产精品99精品久久免费| 久久久另类综合|