编程技巧15法之三[7]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 jz_x 的 blog

        ncolors = (1 << bi.bibitcount);

        }

    dwlen  = bi.bisize + ncolors * sizeof(rgbquad);

 

    hdc = ::getdc(null);

    hpal = selectpalette(hdc,hpal,false);

    realizepalette(hdc);

 

    //为信息头及颜色表分配内存

    hdib = globalalloc(gmem_fixed,dwlen);

 

    if (!hdib){

        selectpalette(hdc,hpal,false);

        ::releasedc(null,hdc);

        return null;

    }

 

    lpbi = (lpbitmapinfoheader)globallock(hdib);

 

    *lpbi = bi;

 

    //调用 getdibits 计算图像大小

    getdibits(hdc, (hbitmap)bitmap.getsafehandle(), 0l, (dword)bi.biheight,

            (lpbyte)null, (lpbitmapinfo)lpbi, (dword)dib_rgb_colors);

 

    bi = *lpbi;

 

    //图像的每一行都对齐(32bit)边界

    if (bi.bisizeimage == 0){

        bi.bisizeimage = ((((bi.biwidth * bi.bibitcount) + 31) & ~31) / 8)

                        * bi.biheight;

 

        if (dwcompression != bi_rgb)

本文关键:编程技巧
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top