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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xpngimage.cpp

?? 配合linux窗口管理器使用
?? CPP
字號:
/* vim:tabstop=4:expandtab:shiftwidth=4 *  * Idesk -- XPngImage.cpp * * Copyright (c) 2002, Chris (nikon) (nikon@sc.rr.com) * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: *  *      Redistributions of source code must retain the above copyright *      notice, this list of conditions and the following disclaimer. *       *      Redistributions in binary form must reproduce the above copyright *      notice, this list of conditions and the following disclaimer in the *      documentation and/or other materials provided with the distribution. *       *      Neither the name of the <ORGANIZATION> nor the names of its *      contributors may be used to endorse or promote products derived from *      this software without specific prior written permission. * * (See the included file COPYING / BSD ) */#include "XPngImage.h"#include "XIconWithShadow.h"XPngImage::XPngImage(AbstractContainer * c, AbstractIcon * iParent,                         AbstractConfig * con, AbstractIconConfig * iConfig)                            : XIdeskImage(c, iParent, con, iConfig){   }XPngImage::~XPngImage(){}void XPngImage::configure(){    XIdeskImage::configure();}void XPngImage::createPicture(){    string filename = iconConfig->getPictureFilename();        ImlibImage *image;    if( loadPng( filename ) == true )    {        image = Imlib_load_image( imlibData, (char*)filename.c_str() );        if(!image)        {            cout << "Couldn't find image " << filename << " bailing\n";            _exit(1);        }        else        {            width = image->rgb_width;            height = image->rgb_height;        }        Imlib_kill_image(imlibData, image);    }    else    {        cout << "Can't load: " << filename << " bailing -- "             << iconConfig->getCaption() << endl             << "Check to see if the image and path to image is valid\n";    }}bool XPngImage::loadPng(const string &filename){        unsigned char *ptr, *aptr, *aptr2, **lines, *line, r, g, b, a;    png_structp   pngdata;    png_infop     pnginfo;    png_uint_32   w, h;    FILE          *file;    int           color, depth, interlace;    if ( !(file = fopen( (char*)filename.c_str(), "r" )) )        return false;    pngdata = png_create_read_struct( PNG_LIBPNG_VER_STRING, NULL, NULL, NULL );    if (!pngdata)        return false;        pnginfo = png_create_info_struct( pngdata );        if (!pnginfo)    {        png_destroy_read_struct( &pngdata, NULL, NULL );        return false;    }    if (setjmp(pngdata->jmpbuf))    {        png_destroy_read_struct( &pngdata, NULL, NULL );        return false;    }        if(color == PNG_COLOR_TYPE_RGB_ALPHA)    {        png_destroy_read_struct( &pngdata, NULL, NULL );        return false;    }    png_init_io(pngdata, file);    png_read_info(pngdata, pnginfo);    png_get_IHDR(pngdata, pnginfo, &w, &h, &depth, &color, &interlace,                 NULL, NULL);    width = w;    height = h;    if (color == PNG_COLOR_TYPE_PALETTE)        png_set_expand(pngdata);    png_set_strip_16(pngdata);    png_set_packing(pngdata);    if(png_get_valid(pngdata,pnginfo,PNG_INFO_tRNS))        png_set_expand( pngdata );        png_set_filler( pngdata, 0xff, PNG_FILLER_AFTER );    rgb = new unsigned char[width * height * 3];    alpha = new unsigned char[width * height];    alpha2 = new unsigned char[width * height];    if (!rgb || !alpha || !alpha2)    {        png_destroy_read_struct( &pngdata, NULL, NULL );        return false;    }        lines = new unsigned char*[height];    if (!lines)    {        delete [] rgb;        delete [] alpha;        delete [] alpha2;        png_destroy_read_struct( &pngdata, NULL, NULL );        return false;    }        for(int i=0; i< height; i++)    {        lines[i] = new unsigned char[width * 4];                if (!lines[i] )        {            delete [] rgb;            delete [] alpha;            delete [] alpha2;            png_destroy_read_struct( &pngdata, NULL, NULL );            return false;        }    }    hasAlpha = true;    png_read_image(pngdata, lines);    png_destroy_read_struct(&pngdata, &pnginfo, NULL);    ptr = rgb;    aptr = alpha;    aptr2 = alpha2;    //DesktopIconConfig * dIconConfig =     //  dynamic_cast<DesktopIconConfig *>(iconConfig);        for(int y = 0; y < height; y++)    {        line = lines[y];        for (int x = 0; x < width; x++)        {            if (color == PNG_COLOR_TYPE_GRAY_ALPHA)            {                r = g = b = *line++;                a = *line++;            }            else if (color == PNG_COLOR_TYPE_GRAY)            {                r = g = b = *line++;                a = 255;            }            else            {                r = *line++;                g = *line++;                b = *line++;                a = *line++;            }                        *ptr++ = r;            *ptr++ = g;            *ptr++ = b;                    // Transparency matrix.            if( ( a - transparency ) < 0 )            {                *aptr++ = 0;                *aptr2++ = a;            }            else             {                *aptr++ = a - transparency;                *aptr2++ = a;            }        }    }          for(int i = 0; i < height; i++)        delete [] lines[i];        delete [] lines;        return true;}/****************************************************************************\ * XPngImageShadow -- class implementation                                  *\****************************************************************************/XPngImageShadow::XPngImageShadow(AbstractContainer * c,                                 AbstractIcon * iParent,                                 AbstractConfig * con,                                 AbstractIconConfig * iConfig)                                    : XIdeskImage(c, iParent, con, iConfig),                                      XPngImage(c, iParent, con, iConfig),                                      XShadowImage(c, iParent, con, iConfig){}void XPngImageShadow::configure(){    XPngImage::configure();    XShadowImage::configure();}void XPngImageShadow::refreshIcon(){    XShadowImage::refreshIcon();    //XPngImage::refreshIcon(); calls repaint, but resets the new x, y values    repaint();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆swag| 欧美日韩在线精品一区二区三区激情| 日韩精品中文字幕在线不卡尤物 | 精品嫩草影院久久| 天天影视色香欲综合网老头| 欧美三级视频在线| 亚洲国产精品综合小说图片区| 91小视频在线免费看| 亚洲美女电影在线| 色94色欧美sute亚洲13| 亚洲美腿欧美偷拍| 91国内精品野花午夜精品| 亚洲自拍偷拍网站| 欧美日韩中文国产| 日本美女视频一区二区| 日韩精品中午字幕| 国产一区二区在线电影| 精品国产免费人成在线观看| 国内精品伊人久久久久av一坑| 精品久久一二三区| 国产成人综合网| 国产精品三级av在线播放| 91在线无精精品入口| 亚洲自拍与偷拍| 欧美一区二区三区在线| 精品一区在线看| 国产亚洲精久久久久久| 99久久精品99国产精品| 最好看的中文字幕久久| 91国偷自产一区二区三区观看| 婷婷成人综合网| 欧美mv和日韩mv国产网站| 成人午夜激情影院| 亚洲柠檬福利资源导航| 7777精品久久久大香线蕉| 日韩成人伦理电影在线观看| 欧美mv日韩mv| www.一区二区| 亚洲风情在线资源站| 日韩欧美中文字幕公布| 国产91高潮流白浆在线麻豆| 亚洲欧美日韩中文播放| 欧美一区午夜精品| 国产成人精品影视| 亚洲老妇xxxxxx| 欧美一级爆毛片| 粉嫩嫩av羞羞动漫久久久| 亚洲天堂福利av| 欧美日韩精品福利| 国产精品一区二区不卡| 亚洲欧美一区二区不卡| 日韩视频一区二区三区在线播放| 国产酒店精品激情| 亚洲综合丝袜美腿| 26uuu色噜噜精品一区二区| 99免费精品在线| 日本欧美一区二区在线观看| 久久久久久久网| 91麻豆福利精品推荐| 全部av―极品视觉盛宴亚洲| 国产欧美精品日韩区二区麻豆天美| 色av成人天堂桃色av| 狠狠色狠狠色综合系列| 亚洲精品美腿丝袜| 久久综合九色综合欧美就去吻| 色老综合老女人久久久| 极品尤物av久久免费看| 亚洲精品大片www| 欧美精品一区二区三区视频| 91麻豆swag| 国产精品一区二区在线播放| 亚洲一二三区视频在线观看| 久久久久国产精品厨房| 欧美美女一区二区在线观看| 成人av小说网| 久久国产欧美日韩精品| 亚洲黄一区二区三区| 久久蜜桃香蕉精品一区二区三区| 欧美日韩亚洲丝袜制服| 成人污污视频在线观看| 日本视频在线一区| 亚洲夂夂婷婷色拍ww47| 国产欧美日产一区| 日韩午夜激情视频| 欧洲人成人精品| 成人高清在线视频| 精品中文字幕一区二区小辣椒 | 国产精品成人一区二区艾草| 日韩欧美一二区| 欧美日韩中文字幕一区二区| www.欧美亚洲| 极品少妇xxxx精品少妇偷拍| 亚洲国产精品久久一线不卡| 中文一区一区三区高中清不卡| 日韩欧美一区二区视频| 欧美色偷偷大香| 91丨porny丨国产| 国产成人午夜99999| 蜜桃av噜噜一区| 亚洲大片精品永久免费| 亚洲视频一区二区免费在线观看| 久久久噜噜噜久噜久久综合| 日韩天堂在线观看| 91精品在线免费观看| 91黄色小视频| 91蝌蚪porny| 成人午夜免费av| 国产成人精品亚洲日本在线桃色 | 国产精品一区二区在线观看不卡| 日韩不卡在线观看日韩不卡视频| 一区二区三区在线观看动漫| 国产精品电影一区二区| 久久久久久免费网| 久久久综合九色合综国产精品| 日韩美女一区二区三区四区| 欧美精品在线观看一区二区| 在线观看日韩国产| 在线观看日韩av先锋影音电影院| caoporn国产一区二区| 懂色av一区二区三区免费观看| 国产盗摄精品一区二区三区在线| 久久精品国产一区二区三区免费看| 日日夜夜免费精品| 天堂蜜桃91精品| 亚洲18影院在线观看| 午夜欧美一区二区三区在线播放| 亚洲一区二区在线免费观看视频| 亚洲一区在线免费观看| 一区二区三区四区不卡在线| 一区二区三区中文字幕精品精品| 亚洲综合在线视频| 午夜欧美电影在线观看| 国产不卡一区视频| 国产在线国偷精品产拍免费yy| 国产一区二区三区精品视频| 国产精品资源站在线| 国产黄色精品视频| 不卡大黄网站免费看| 粉嫩aⅴ一区二区三区四区| av不卡在线播放| 一道本成人在线| 欧美专区日韩专区| 欧美丰满一区二区免费视频| 3751色影院一区二区三区| 日韩一区二区在线免费观看| 精品日韩一区二区三区免费视频| 久久色在线观看| 国产精品久久久久aaaa| 亚洲免费看黄网站| 亚洲国产aⅴ成人精品无吗| 五月天激情小说综合| 精品一区二区三区蜜桃| 国产盗摄精品一区二区三区在线| av高清久久久| 在线观看亚洲a| 日韩一区二区三免费高清| 精品88久久久久88久久久| 国产精品无圣光一区二区| 亚洲三级在线观看| 午夜亚洲国产au精品一区二区| 免费欧美日韩国产三级电影| 国产乱妇无码大片在线观看| 不卡一区二区中文字幕| 欧美综合一区二区| 日韩午夜av电影| 中文字幕va一区二区三区| 亚洲一级二级三级| 热久久久久久久| 国产 日韩 欧美大片| 在线免费观看日本欧美| 日韩欧美成人一区| 国产精品盗摄一区二区三区| 亚洲v中文字幕| 国产成人精品综合在线观看 | 一区二区三区美女| 美女mm1313爽爽久久久蜜臀| 盗摄精品av一区二区三区| 欧美色图一区二区三区| 亚洲精品一区二区三区精华液| 椎名由奈av一区二区三区| 爽爽淫人综合网网站| 成人精品一区二区三区四区| 欧美日产在线观看| 中文字幕不卡在线| 午夜精品福利在线| 国产成人精品一区二| 欧美日本高清视频在线观看| 久久精品人人做人人综合| 亚洲一区免费观看| 国产成人在线视频免费播放| 欧美日韩国产a| 久久蜜桃av一区二区天堂| 亚洲制服丝袜在线| 国产成人在线视频网站| 欧美日韩成人一区| 亚洲国产精品二十页| 五月综合激情婷婷六月色窝| 成人激情小说乱人伦| 日韩美女在线视频| 亚洲一区二区美女|