正在加载图片...
for(x=0; x<bi biTwidth, x++) (lpPr+)= Line Buffer[x,∥将该行存储到位图数据中 ∥)创建新的位图 hBitmap=CreateDI Bitmap(hDc, (LPBITMAPINFOHEADER)Iplmg Data, (LONG) CBM INIT. (LPSTR)Iplmg Data sizeof( BITMAPINFOHEADER)+ Num Colors*sizeof(RGBQUAD) (LPBITMAPINFO)Iplmg Data, DIB RGB COLORS) if(pAlette & hPrevPalette)4 SelectPalette(hDc, hPrevPalette, FALSE) RealizePalette(hDc) fbmp= creat("c: pcx2bmp bmp,O), Iwrite(fbmp, LPSTR)&bf, sizeof( BITMAPFILEHEADER)) Iwrite(hfbmp, (LPSTR)lplmg Data, BufSize); Iclose(fbmp) fclose( PCXfp) ∥释放内存和资源 ReleaseDC(hWnd, hDc) Global Unlock(hmg Data) return trUe. ∥对每一行进行解码,结果存储到指针p指向的内存中 void ReadPcx line(unsigned char*p, FIlE'fp) signed int n=0. memset(p, 0, Pcx BytesPerLine); ∥读出一个字节 c=fgetc(fp)&Oxff if(c&Oxc0==0xc0){∥是个形成字节 为c的低六位 ∥下一个字节为实际的图象数据for(x=0;x<bi.biWidth;x++) *(lpPtr++)=LineBuffer[x]; //将该行存储到位图数据中 } //创建新的位图 hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEADER)lpImgData, (LONG)CBM_INIT, (LPSTR)lpImgData+ sizeof(BITMAPINFOHEADER)+ NumColors*sizeof(RGBQUAD), (LPBITMAPINFO)lpImgData, DIB_RGB_COLORS); if(hPalette && hPrevPalette){ SelectPalette(hDc,hPrevPalette,FALSE); RealizePalette(hDc); } hfbmp=_lcreat("c:\\pcx2bmp.bmp",0); _lwrite(hfbmp,(LPSTR)&bf,sizeof(BITMAPFILEHEADER)); _lwrite(hfbmp,(LPSTR)lpImgData,BufSize); _lclose(hfbmp); fclose(PCXfp); //释放内存和资源 ReleaseDC(hWnd,hDc); GlobalUnlock(hImgData); return TRUE; } //对每一行进行解码,结果存储到指针 p 指向的内存中 void ReadPcxLine(unsigned char *p,FILE *fp) { unsigned int n=0,i; char c; memset(p,0,PcxBytesPerLine); do{ //读出一个字节 c=fgetc(fp)&0xff; if((c&0xc0)==0xc0){ //是个形成字节 //i 为 c 的低六位 i=c&0x3f; //下一个字节为实际的图象数据
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有