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

糯米

TI DaVinci, gstreamer, ffmpeg
隨筆 - 167, 文章 - 0, 評論 - 47, 引用 - 0
數(shù)據(jù)加載中……

根據(jù)擴展名獲得ico文件

 

#define ICON_SIZE 32

static int _HBitmapToBmp32Bits(HBITMAP hBitmap, U8 *outint out_len)
{   
    
/*
     * 注意:
     * 該函數(shù)代碼部分參考csdn。向原作者致敬!
     
*/

    
// 設(shè)備描述表   
    HDC hDC; 
    
//位圖中每個像素所占字節(jié)數(shù)   
    WORD wBitCount; 
    
// 定義調(diào)色板大小,位圖中像素字節(jié)大小,位圖文件大小,寫入文件字節(jié)數(shù)
    DWORD dwBmBitsSize;
    
//位圖屬性結(jié)構(gòu)   
    BITMAP Bitmap; 
    
//位圖信息頭結(jié)構(gòu)     
    BITMAPINFOHEADER bi; 
    
// 定義文件,分配內(nèi)存句柄,調(diào)色板句柄   
    
// 計算位圖文件每個像素所占字節(jié)數(shù)   
    HANDLE hPal, hOldPal = NULL;

    
// 設(shè)置位圖信息頭結(jié)構(gòu)   
    wBitCount = 32;
    GetObject(hBitmap, 
sizeof(BITMAP), (LPSTR)&Bitmap); 
    
if (Bitmap.bmWidth != ICON_SIZE || Bitmap.bmHeight != ICON_SIZE) {
        Dbg(
"size not fit\n");
        
return 0;
    }


    memset(
&bi, 0sizeof(bi));
    bi.biSize 
= sizeof(BITMAPINFOHEADER);   
    bi.biWidth 
= Bitmap.bmWidth;   
    bi.biHeight 
= Bitmap.bmHeight;   
    bi.biPlanes 
= 1;   
    bi.biBitCount 
= wBitCount;   
    bi.biCompression 
= BI_RGB;   

    
// 計算位圖大小   
    dwBmBitsSize = ((Bitmap.bmWidth*wBitCount+31)/32* 4 * Bitmap.bmHeight;
    
if (out_len < (int)dwBmBitsSize)
        
return 0;

    
// 處理調(diào)色板
    hPal = (HPALETTE)GetStockObject(DEFAULT_PALETTE); 
    
if (hPal) {   
        hDC 
= GetDC(NULL);   
        hOldPal 
= SelectPalette(hDC, (HPALETTE)hPal, FALSE);   
        RealizePalette(hDC);   
    }
   

    
// 獲取該調(diào)色板下新的像素值   
    GetDIBits(hDC, 
              hBitmap, 
              
0
              (UINT)Bitmap.bmHeight,   
              (LPSTR)
out,   
              (BITMAPINFO 
*)&bi,  
              DIB_PAL_COLORS
              );

    
// 恢復(fù)調(diào)色板       
    if (hOldPal) {   
        SelectPalette(hDC,(HPALETTE)hOldPal, TRUE);   
        RealizePalette(hDC);   
        ReleaseDC(NULL, hDC);   
    }


    
return dwBmBitsSize;   
}
   


static int ExtToIcoFile(char *ext, U8 *outint out_len)
{
    SHFILEINFOA sfi;   
    
char str[32= "*." };
    U32 
*buf;
    ICONINFO ii;
    U8 
*orig = out;
    
int i;

#define XOR_SIZE ICON_SIZE*ICON_SIZE*4
#define AND_SIZE ICON_SIZE*ICON_SIZE/8

    
// Calc File Length
    
// 文件頭6字節(jié)
    
// 圖像信息塊16字節(jié)
    
// BMP信息頭40字節(jié)
    
// XOR位圖
    
// 單色AND位圖
    if (out_len < 6 + 16 + 40 + XOR_SIZE + AND_SIZE)
        
return 0;

    strncat(str, ext, 
sizeof(str) - 8);
    SHGetFileInfoA(str,  
                   FILE_ATTRIBUTE_NORMAL,     
                   
&sfi,
                   
sizeof(SHFILEINFO),  
                   SHGFI_USEFILEATTRIBUTES 
| SHGFI_ICON
                   );
    GetIconInfo(sfi.hIcon, 
&ii);

    
/*
     (一、文件頭6字節(jié)) 
000(000)2    保留的字節(jié)            00 00 
002(002)2    資源類型             01 00 (01為圖標(biāo),02為光標(biāo)) 
004(004)2    圖象個數(shù)             01 00 
    
*/

    
*(U16 *)out = 0out += 2;
    
*(U16 *)out = 1out += 2;
    
*(U16 *)out = 1out += 2;

    
/*
 (二、圖像信息塊16字節(jié))  
006(006)1    圖標(biāo)寬度             20 
007(007)1    圖標(biāo)高度             20 
008(008)1    顏色計數(shù)             00(02=單色, 00≥256色) 
009(009)1    未用                00 
010(00A)4    保留的              00 00 00 00 
014(00E)4    圖象數(shù)據(jù)塊的長度                 28 01 00 00(10進制=296) 
018(012)4    圖象數(shù)據(jù)塊相對于文件頭部的偏移量 16 00 00 00(10進制=22) 
    
*/

    
*out++ = ICON_SIZE;
    
*out++ = ICON_SIZE;
    
*out++ = 0;
    
*out++ = 0;
    
*(U32 *)out = 0out += 4;
    
*(U32 *)out = 40 + XOR_SIZE + AND_SIZE; out += 4;
    
*(U32 *)out = 22out += 4;

    
/*
 (三、BMP信息頭40字節(jié)) 
022(016)4    BMP 信息頭結(jié)構(gòu)長度        28 00 00 00(10進制=40)  
026(01A)4    圖像寬度              10 00 00 00 
030(01E)4    圖像高度(XOR圖高度+AND圖高度) 20 00 00 00 
034(022)2    位面板數(shù)                         01 00 
036(024)2    每象素所占位數(shù)                   04 00 
038(026)4    象素數(shù)據(jù)的壓縮類型        00 00 00 00(表示未壓縮) 
042(02A)4    圖象數(shù)據(jù)的長度          C0 00 00 00(10進制=192) 
046(02E)16   未用               16個00 
    
*/

    
*(U32 *)out = 40out += 4;
    
*(U32 *)out = 32out += 4;
    
*(U32 *)out = 64out += 4;
    
*(U16 *)out = 1out += 2;    // ?? 
    *(U16 *)out = 32out += 2;
    
*(U32 *)out = 0out += 4;
    
*(U32 *)out = XOR_SIZE + AND_SIZE; out += 4;
    memset(
out016); out += 16;

    
/*
    (五、XOR位圖的數(shù)據(jù))  
    
*/

    
if (_HBitmapToBmp32Bits(ii.hbmColor, out, XOR_SIZE) != XOR_SIZE) 
        
return 0;
    
out += 32*32*4;

    
/*
    (六、單色AND位圖的數(shù)據(jù)) 
    
*/

    buf 
= (U32 *)malloc(XOR_SIZE);
    
if (!buf)
        
return 0;
    
if (_HBitmapToBmp32Bits(ii.hbmMask, (U8 *)buf, XOR_SIZE) != XOR_SIZE)
        
return 0;
    memset(
out0, AND_SIZE);
    
//out += 32*32/8;
    for (i = 0; i < AND_SIZE*8; i++{
        
if (buf[i])
            
*out |= (1 << (7 - (i&7)));
        
if ((i&7== 7)
            
out++;
    }

    free(buf);

#undef AND_SIZE
#undef XOR_SIZE

    
return out - orig;
}


#undef ICON_SIZE


int main()
{
    
void *s, *a;
    
int len;
    
static char line[1024], method[16], url[128];
    FILE 
*fp;
    
static U8 buf[1024*1024*1];
    
    fp 
= fopen("b.ico""wb+");
    len 
= ExtToIcoFile("mp3", buf, sizeof(buf));
    len 
= fwrite(buf, len, 1, fp);
    fclose(fp);
    
return 0;

posted on 2010-02-22 20:54 糯米 閱讀(628) 評論(0)  編輯 收藏 引用 所屬分類: Misc

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品裸体一区二区三区| 亚洲一品av免费观看| 一本色道**综合亚洲精品蜜桃冫 | 亚洲一区二区免费在线| 亚洲激情午夜| 久久婷婷人人澡人人喊人人爽| 午夜精品久久99蜜桃的功能介绍| 免费看亚洲片| 美女视频黄免费的久久| 国产在线高清精品| 亚洲欧美成人综合| 香蕉亚洲视频| 国产精品电影观看| 一区二区三区不卡视频在线观看 | 国产日韩欧美三级| 亚洲线精品一区二区三区八戒| 99热这里只有成人精品国产| 欧美大片第1页| 欧美激情精品久久久久久变态 | 中文日韩在线| 欧美理论在线| 亚洲精品在线观看免费| 99热这里只有精品8| 欧美日产一区二区三区在线观看| 亚洲第一在线综合在线| 91久久精品日日躁夜夜躁欧美 | 久久激情视频免费观看| 久久手机精品视频| 极品日韩av| 美女精品国产| 亚洲国内在线| 一区二区三区三区在线| 欧美日韩精品在线观看| 一本一本久久a久久精品综合麻豆| 一区二区三区国产精华| 国产精品久久久久久久一区探花| 亚洲欧美成aⅴ人在线观看| 久久国产精品99国产精| 国模私拍视频一区| 免费在线欧美视频| 一卡二卡3卡四卡高清精品视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美午夜一区二区三区免费大片| 亚洲女人av| 免费黄网站欧美| 一区二区三区欧美| 国产农村妇女精品| 麻豆精品传媒视频| a4yy欧美一区二区三区| 久久er精品视频| 亚洲激情精品| 国产精品久久九九| 久久婷婷久久| 中文有码久久| 欧美69视频| 亚洲一区免费在线观看| 含羞草久久爱69一区| 欧美精品久久久久a| 午夜国产一区| 91久久国产综合久久| 西瓜成人精品人成网站| 亚洲国产美女精品久久久久∴| 欧美日韩在线高清| 久久精品国产一区二区电影 | 在线观看一区| 欧美性猛交xxxx乱大交退制版| 欧美一区二区三区久久精品茉莉花| 欧美国产日韩精品免费观看| 性色av一区二区三区| 亚洲国产婷婷综合在线精品 | 国产精品白丝jk黑袜喷水| 久久久久久亚洲精品不卡4k岛国| 99国产精品久久| 欧美福利网址| 久久精品国产一区二区电影| 亚洲美女区一区| 激情久久五月| 国产精品视频久久| 欧美另类videos死尸| 久久久一本精品99久久精品66| 亚洲特黄一级片| 亚洲人成网站在线观看播放| 猛男gaygay欧美视频| 欧美伊人久久久久久久久影院| 99国产精品久久久| 亚洲第一精品夜夜躁人人爽| 国产欧美日韩高清| 国产精品日本精品| 欧美日韩一区二区免费视频| 欧美高清视频免费观看| 久久久综合网| 久久久久久久激情视频| 午夜影院日韩| 亚洲欧美日韩国产综合在线 | 亚洲国产欧美一区| 欧美成人精品在线观看| 久久综合999| 久久精品国产一区二区三| 欧美亚洲日本网站| 午夜天堂精品久久久久| 亚洲欧美成人在线| 亚洲综合社区| 午夜亚洲影视| 性欧美18~19sex高清播放| 亚洲欧美日韩国产成人| 亚洲免费小视频| 亚洲欧美区自拍先锋| 亚洲欧美另类久久久精品2019| 亚洲一区二区三区色| 亚洲午夜激情免费视频| 亚洲一区欧美| 欧美在线视频观看免费网站| 欧美在线视频免费观看| 久久精品视频网| 麻豆精品网站| 欧美激情一区二区三区成人| 亚洲第一福利社区| 亚洲黄色视屏| 一区二区国产精品| 午夜视频在线观看一区二区三区 | 国产精品jizz在线观看美国| 国产精品久久久久久久久久免费看 | 欧美亚洲三区| 久久九九国产| 欧美激情一区二区三级高清视频| 亚洲高清中文字幕| 99精品欧美一区| 午夜精品视频在线| 久久人人97超碰精品888| 欧美高清视频一二三区| 国产精品女主播| 黄色综合网站| 亚洲精品日韩精品| 亚洲影院在线| 麻豆成人在线观看| 日韩视频在线一区二区| 欧美夜福利tv在线| 欧美精品国产一区| 国产精品日韩欧美一区二区三区| 激情伊人五月天久久综合| 亚洲三级免费电影| 欧美在线|欧美| 欧美激情精品久久久久久大尺度| 一区二区三区高清在线| 久久久久久久999| 欧美日韩在线三区| 激情综合色综合久久综合| 一本久道久久久| 久久这里有精品视频| 亚洲精品在线三区| 久久精品国产免费观看| 欧美精品电影| 在线播放中文一区| 亚洲一区久久| 亚洲国产二区| 久久精品视频一| 欧美亚洲成人精品| 91久久一区二区| 久久国产欧美| 中文日韩在线| 欧美巨乳在线观看| 激情亚洲网站| 久久国产精品99久久久久久老狼 | 欧美成人视屏| 亚洲欧洲av一区二区三区久久| 欧美剧在线观看| 亚洲高清久久久| 久久青青草原一区二区| 亚洲一卡二卡三卡四卡五卡| 欧美国产视频在线观看| 精品成人久久| 久久久午夜电影| 亚洲欧美成aⅴ人在线观看| 欧美日韩亚洲免费| 亚洲麻豆视频| 欧美大色视频| 久久亚洲综合色一区二区三区| 国产亚洲毛片| 久久久国产一区二区三区| 亚洲一级二级| 国产精品美女xx| 亚洲综合精品| 在线视频欧美日韩| 欧美天堂亚洲电影院在线播放| 亚洲精品一区二区三区樱花| 欧美成人tv| 免费黄网站欧美| 亚洲黄色成人网| 亚洲狠狠丁香婷婷综合久久久| 久久夜色精品| 亚洲日本欧美| 亚洲激情婷婷| 欧美精品成人| 亚洲一区二区免费在线| 亚洲午夜激情免费视频| 国产精品入口尤物| 欧美一区精品| 久久九九有精品国产23| 国产一区在线视频| 欧美不卡在线|