正在加载图片...
MYLINE IpMyLine, TempLine, MaxdLine tic hogPeN rlp=(PS SOLID, 1, 1, RGB(255,0,0)1 HEN ∥我们处理的实际上是256级灰度图,不过只用到了0和255两种颜色。 if( Num Colors!=256)1 Message Box(hWnd, "Must be a mono bitmap with grayscale palette Error Message", MB OKMB ICONEXCLAMATION) return False ∥计算最大距离 Dist=(int (sqrt((double)bi. biwidth*bi bi Width+ (double)bi. biHeight*bi. biHeight)+0.5) Alpha=180/2;∥0到to178度,步长为2度 ∥距离角度数组分配内存 f((hDist Alpha=GlobalAlloc(GHnd, (DWORD)Dist*Alpha* sizeof(int)))=NULL)( Message Box(hWnd, Error alloc memory! " "Error Message" MB OKJMB ICONEXCLAMATION) return False ∥.记录直线端点的数组分配内存 if(hMyLine=GlobalAlloc( GHND, (DWORDDist*Alpha* sizeof(MYLINEDD)==NULL)i return false OffBitsbf. bfOffBits-sizeof(BITMAPFILEHEADER) upSize为缓冲区大小 BufSize=offBits+bi bi Height* Line Bytes Iplmg Data=(LPBITMAPINFOHEADER)GlobalLock(hlmg Data) IpDist alpha=(int)GlobalLock(hDistAlpha) IpMyline=( for(i=0; i<(long)Dist"Alpha, 1++) TempLine=( MYLINE*)(pMyLine-+i); (* Templin),boty=32767,∥初始化最低点的y坐标为一个很大的值 for(y=0; y<bi bi Height; y++)i pPur指向位图数据MYLINE *lpMyLine,*TempLine,MaxdLine; static LOGPEN rlp={PS_SOLID,1,1,RGB(255,0,0)}; HPEN rhp; //我们处理的实际上是 256 级灰度图,不过只用到了 0 和 255 两种颜色。 if( NumColors!=256){ MessageBox(hWnd,"Must be a mono bitmap with grayscale palette!", "Error Message",MB_OK|MB_ICONEXCLAMATION); return FALSE; } //计算最大距离 Dist=(int)(sqrt((double)bi.biWidth*bi.biWidth+ (double)bi.biHeight*bi.biHeight)+0.5); Alpha=180 /2 ; //0 到 to 178 度,步长为 2 度 //为距离角度数组分配内存 if((hDistAlpha=GlobalAlloc(GHND,(DWORD)Dist*Alpha* sizeof(int)))==NULL){ MessageBox(hWnd,"Error alloc memory!","Error Message", MB_OK|MB_ICONEXCLAMATION); return FALSE; } //为记录直线端点的数组分配内存 if((hMyLine=GlobalAlloc(GHND,(DWORD)Dist*Alpha* sizeof(MYLINE)))==NULL){ GlobalFree(hDistAlpha); return FALSE; } OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER); //BufSize 为缓冲区大小 BufSize=OffBits+bi.biHeight*LineBytes; lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); lpDistAlpha=(int *)GlobalLock(hDistAlpha); lpMyLine=(MYLINE *)GlobalLock(hMyLine); for (i=0;i<(long)Dist*Alpha;i++){ TempLine=(MYLINE*)(lpMyLine+i); (*TempLine).boty=32767; //初始化最低点的 y 坐标为一个很大的值 } for (y=0;y<bi.biHeight;y++){ //lpPtr 指向位图数据
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有