正在加载图片...
)创建新的 BITMAPFILEHEADER和 BITMAPINFOHEADER memset(char *)&bf, O, sizeof( BI TMAPFILEHEADER)); memset((char *)&bi, 0, sizeof( BITMAPINFOHEADER)); ∥填写 BITMAPINFOHEADER头信息 bi. biSize=sizeof( BITMAPINFOHEADER) ∥|到图象的宽和高 bi bi Width=header xmax-header xmin+1 bi. biHeight=header. ymax-header ymin+ bi bi planes=l bi bi BitCount=8 bi bi Img Width=bi bi Width ImgHeight=bi. biHeight Num Colors=25 Line Bytes=(DWORD)WIDTHBYTES(bibi Width*bi. biBitCount) ImgSize=(DWORD)Line Bytes* bi. biHeight; ∥填写 BITMAPFILEHEADER头信息 bf bf Type=0x4d42 bf. bfSize=sizeof(BITMAPFILEHEADER+sizeof( BI TMAPINFOHEADER)+ NumColors*sizeof( RGBQUAD)+ImgSize, bf. bfoffBits=(DWORD )(Num Colors*sizeof( RGBQUAD)+ sizeof(BITMAPFILEHEADER)+sizeof( BITMAPINFOHEADER)) ∥.为新图分配缓冲区 if((hmg Data=GlobalAlloc(GHND, (DWORD) (sizeof( BI TMAPINFOHEADER)+ Num Colors*sizeof( RGBQUAD)+ImgSize))==NULL) Message Box(hWnd, Error alloc memory! ","Error Message MB OKJMB ICONEXCLAMATION): fclose(PCXfp) return False. Iplmg Data=(LPBITMAPINFOHE ADER)Global Lock(hlmg Data) ∥拷考贝头信息 memcpy(lplmg Data, (char *)&bi, sizeof( BITMAPINFOHEADER)) IpPtr=(char *)lplmg Datatsizeof(BITMAPINFOHEADER); ∥.256色调色板分配内存} //创建新的 BITMAPFILEHEADER 和 BITMAPINFOHEADER memset((char *)&bf,0,sizeof(BITMAPFILEHEADER)); memset((char *)&bi,0,sizeof(BITMAPINFOHEADER)); //填写 BITMAPINFOHEADER 头信息 bi.biSize=sizeof(BITMAPINFOHEADER); //得到图象的宽和高 bi.biWidth=header.xmax-header.xmin+1; bi.biHeight=header.ymax-header.ymin+1; bi.biPlanes=1; bi.biBitCount=8; bi.biCompression=BI_RGB; ImgWidth=bi.biWidth; ImgHeight=bi.biHeight; NumColors=256; LineBytes=(DWORD)WIDTHBYTES(bi.biWidth*bi.biBitCount); ImgSize=(DWORD)LineBytes*bi.biHeight; //填写 BITMAPFILEHEADER 头信息 bf.bfType=0x4d42; bf.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+ NumColors*sizeof(RGBQUAD)+ImgSize; bf.bfOffBits=(DWORD)(NumColors*sizeof(RGBQUAD)+ sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)); //为新图分配缓冲区 if((hImgData=GlobalAlloc(GHND,(DWORD) (sizeof(BITMAPINFOHEADER)+ NumColors*sizeof(RGBQUAD)+ImgSize)))==NULL) { MessageBox(hWnd,"Error alloc memory!","ErrorMessage", MB_OK|MB_ICONEXCLAMATION); fclose(PCXfp); return FALSE; } lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); //拷贝头信息 memcpy(lpImgData,(char *)&bi,sizeof(BITMAPINFOHEADER)); lpPtr=(char *)lpImgData+sizeof(BITMAPINFOHEADER); //为 256 色调色板分配内存
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有