青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

數據加載中……

[wxWidgets]Embedding PNG images into executables(將png嵌入到程序中)

首先需要用工具將png圖片轉成.cpp或者.h文件
工具:bin2c
源代碼:

// bin2c.c
//
// convert a binary file into a C source vector
//
// THE "BEER-WARE LICENSE" (Revision 3.1415):
// sandro AT sigala DOT it wrote this file. As long as you retain this notice you can do
// whatever you want with this stuff.  If we meet some day, and you think this stuff is
// worth it, you can buy me a beer in return.  Sandro Sigala
//
// syntax:  bin2c [-c] [-z] <input_file> <output_file>
//
//          -c    add the "const" keyword to definition
//          -z    terminate the array with a zero (useful for embedded C strings)
//
// examples:
//     bin2c -c myimage.png myimage_png.cpp
//     bin2c -z sometext.txt sometext_txt.cpp

#include 
<ctype.h>
#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

#ifndef PATH_MAX
#define PATH_MAX 1024
#endif

int useconst = 0;
int zeroterminated = 0;

int myfgetc(FILE *f)
{
    
int c = fgetc(f);
    
if (c == EOF && zeroterminated)
    
{
        zeroterminated 
= 0;
        
return 0;
    }

    
return c;
}


void process(const char *ifname, const char *ofname)
{
    FILE 
*ifile, *ofile;
    errno_t err 
= fopen_s(&ifile,ifname,"rb");
    
if (ifile == NULL)
    
{
        fprintf(stderr, 
"cannot open %s for reading\n", ifname);
        exit(
1);
    }

    fopen_s(
&ofile,ofname, "wb");
    
if (ofile == NULL)
    
{
        fprintf(stderr, 
"cannot open %s for writing\n", ofname);
        exit(
1);
    }

    
char buf[PATH_MAX], *p;
    
const char *cp;
    
if ((cp = strrchr(ifname, '/')) != NULL)
    
{
        
++cp;
    }
 else {
        
if ((cp = strrchr(ifname, '\\')) != NULL)
            
++cp;
        
else
            cp 
= ifname;
    }

    strcpy_s(buf, cp);
    
for (p = buf; *!= '\0'++p)
    
{
        
if (!isalnum(*p))
            
*= '_';
    }

    fprintf(ofile, 
"static %sunsigned char %s[] = {\n", useconst ? "const " : "", buf);
    
int c, col = 1;
    
while ((c = myfgetc(ifile)) != EOF)
    
{
        
if (col >= 78 - 6)
        
{
            fputc(
'\n', ofile);
            col 
= 1;
        }

        fprintf(ofile, 
"0x%.2x, ", c);
        col 
+= 6;
    }

    fprintf(ofile, 
"\n};\n");

    fclose(ifile);
    fclose(ofile);
}


void usage(void)
{
    fprintf(stderr, 
"usage: bin2c [-cz] <input_file> <output_file>\n");
    exit(
1);
}


int main(int argc, char **argv)
{
    
while (argc > 3)
    
{
        
if (!strcmp(argv[1], "-c"))
        
{
            useconst 
= 1;
            
--argc;
            
++argv;
        }
 else if (!strcmp(argv[1], "-z"))
        
{
            zeroterminated 
= 1;
            
--argc;
            
++argv;
        }
 else {
            usage();
        }

    }

    
if (argc != 3)
    
{
        usage();
    }

    process(argv[
1], argv[2]);
    
return 0;
}

在官方論壇中的做了些修改。去掉了一些警告信息。

2、在你的程序中包含轉換好的cpp或者h
 #include <myimage_png.cpp>

wxMemoryInputStream istream(myimage_png, sizeof myimage_png);
wxImage myimage_img(istream, wxBITMAP_TYPE_PNG);

或者可以定義個宏

#define wxGetBitmapFromMemory(name) _wxGetBitmapFromMemory(name ## _png, sizeof(name ## _png))
inline wxBitmap _wxGetBitmapFromMemory(const unsigned char *data, int length) {
wxMemoryInputStream is(data, length);
return wxBitmap(wxImage(is, wxBITMAP_TYPE_ANY, -1), -1);
}
注意:要確保png的句柄初始化了。wxImage::AddHandler(new wxPNGHandler);

posted on 2009-12-04 11:07 Stone xin 閱讀(548) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久久尹人综合网亚洲| 亚洲人体1000| 欧美日韩一区二区在线观看| 在线综合欧美| 欧美a级片网| 欧美一区二区在线免费播放| 亚洲日本黄色| 国产精品日本| 欧美日韩在线观看一区二区| 快播亚洲色图| 久久久精品国产免费观看同学| 亚洲一区bb| 亚洲黄色在线| 欧美伊人久久久久久久久影院| 亚洲国产婷婷香蕉久久久久久99| 国产一区二区三区电影在线观看| 国产精品福利久久久| 欧美日韩国产123区| 欧美成人在线免费观看| 欧美一区二区三区成人| 一本久久精品一区二区| 91久久国产精品91久久性色| 亚洲国产欧美不卡在线观看| 欧美电影免费网站| 欧美www在线| 欧美xx视频| 欧美激情精品久久久六区热门| 免费视频久久| 久久高清福利视频| 免费观看国产成人| 欧美一级理论性理论a| 欧美亚洲日本网站| 久久精品官网| 免费在线观看一区二区| 久久久久久电影| 免费毛片一区二区三区久久久| 欧美成年人视频网站欧美| 欧美福利小视频| av成人天堂| 午夜精品成人在线| 久久精品三级| 欧美激情一区二区三区在线视频 | 久久国产欧美精品| 久久久蜜桃精品| 亚洲丁香婷深爱综合| 亚洲久久一区二区| 日韩天堂在线视频| 久久精品国产欧美激情| 宅男噜噜噜66国产日韩在线观看| 欧美精品成人91久久久久久久| 欧美日韩理论| 国产欧美日韩亚洲精品| 亚洲盗摄视频| 欧美亚洲色图校园春色| 欧美大秀在线观看| 亚洲欧洲在线一区| 午夜欧美大片免费观看| 欧美不卡视频一区发布| 国产精品看片你懂得| 亚洲国产三级| 久久成人在线| 日韩午夜中文字幕| 久久裸体视频| 欧美大片免费观看在线观看网站推荐| 欧美日韩国产综合视频在线观看 | 国产日韩精品一区| 国产亚洲午夜| 亚洲特级片在线| 欧美激情片在线观看| 亚洲欧洲av一区二区| 欧美日韩第一区日日骚| 国产精品久久久久久av下载红粉 | 欧美三级日韩三级国产三级| 国产一区导航| 91久久精品国产91久久| 久久精品国产精品亚洲精品| 亚洲精品日韩在线观看| 另类成人小视频在线| 国产一区二区三区四区| 欧美一区二区三区四区在线观看地址 | 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 国语自产偷拍精品视频偷| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲国产裸拍裸体视频在线观看乱了中文| 久久精品国产99精品国产亚洲性色| 国产美女搞久久| 久久精品一区二区三区不卡牛牛 | 国产精品99久久久久久久女警| 欧美日韩国产高清视频| 亚洲一区二区三区精品在线| 亚洲美女区一区| 国产精品v欧美精品v日韩 | 亚洲国产一区二区精品专区| 欧美另类人妖| 久久精品麻豆| 女女同性精品视频| 亚洲一区网站| 久久不射2019中文字幕| 亚洲电影免费观看高清完整版| 欧美激情一区二区三区高清视频| 欧美私人啪啪vps| 欧美一级电影久久| 久热re这里精品视频在线6| 亚洲在线不卡| 久久一区二区三区四区| 亚洲国产精品精华液网站| 一本久久a久久免费精品不卡| 国产曰批免费观看久久久| 欧美国产精品人人做人人爱| 欧美乱在线观看| 久久久成人精品| 欧美日韩高清一区| 久久亚洲综合网| 国产精品毛片在线| 女同一区二区| 国产日韩一级二级三级| 亚洲国产专区校园欧美| 国产精品美女一区二区在线观看| 美脚丝袜一区二区三区在线观看| 欧美三级电影大全| 亚洲国产成人午夜在线一区| 国精品一区二区| 一区二区三区高清视频在线观看| 1769国产精品| 久久精品人人做人人综合| 午夜精品视频在线观看| 欧美少妇一区二区| 最近看过的日韩成人| 在线精品视频一区二区| 欧美一区精品| 久久精品二区三区| 国产私拍一区| 亚洲欧美日韩中文视频| 一区二区三区日韩欧美| 欧美成人自拍视频| 狂野欧美一区| 尤物精品在线| 香蕉乱码成人久久天堂爱免费| 欧美在线黄色| 国产亚洲精品久久飘花| 亚洲一区二区三区精品在线| 国产一区二区电影在线观看| 日韩天天综合| 日韩亚洲国产欧美| 欧美aⅴ一区二区三区视频| 蜜桃精品一区二区三区 | 欧美成va人片在线观看| 黄色日韩精品| 亚洲欧美日韩网| 欧美激情影院| 美女视频黄免费的久久| 亚洲国产成人av| 久久裸体视频| 亚洲第一免费播放区| 亚洲缚视频在线观看| 久久精视频免费在线久久完整在线看| 欧美一区二区在线免费观看| 国产精品亚洲第一区在线暖暖韩国| 99精品国产福利在线观看免费| 亚洲永久免费| 国产精品久久久免费| 亚洲男女自偷自拍| 另类天堂av| 亚洲国产三级网| 欧美视频不卡中文| 中文一区二区| 欧美一区二区三区男人的天堂 | 美女亚洲精品| 在线看无码的免费网站| 噜噜噜91成人网| 亚洲欧洲一区二区三区在线观看| 国外成人在线视频| 久久久久久**毛片大全| 欧美激情成人在线| 中文国产亚洲喷潮| 国产精品久久网| 欧美中文字幕视频| 久久亚洲高清| 亚洲精品人人| 欧美婷婷在线| 亚洲一区二区在线播放| 久久久精品日韩| 中日韩美女免费视频网站在线观看 | 亚洲乱码视频| 欧美在线在线| 日韩天堂av| 国产视频一区三区| 欧美电影在线播放| 欧美专区在线观看一区| 欧美激情五月| 久久av红桃一区二区小说| 亚洲经典视频在线观看| 国产女人aaa级久久久级| 久久精品论坛| 亚洲夜间福利| 亚洲精选久久| 玖玖视频精品| 亚洲小说欧美另类婷婷| 亚洲国产成人在线视频| 国产婷婷精品|