正在加载图片...
HDC E LONG num ∥我们处理的实际上是256级灰度图,不过只用到了0和255两种颜色。 if( n Message Box(hWnd, "Must be a mono bitmap with grayscale palette Error Message", MB OK MB ICONEXCLAMATION) OffBits-bf. bfOffBits-sizeof( BITMAPFILEHEADER) BufSize为缓冲区大小 Bufsize=offBits+bi. biHeight" Line Bytes, ∥.新图缓冲区分配内存 if((hTemplmg Data=LocalAlloc(LHND, BufSize)==NULL) Message Box(hWnd, "Error alloc memory! "," Error Message", MB OK MB ICONEXCLAMATION return False lplmg Data=(LPBITMAPINFOHEADER)GlobalLock(hlmg Data) IpTemplmg Data=(LPBITMAPINFOHEADER)LocalLock(hTemplmg Data); ∥拷贝头信息和位图数据 memcpy(lp Templmg Data, lplmg Data, BufSize); for(y=ly<bi. biWeight-ly++){/注意y的范围是从1到高度2 ∥pPr指向原图数据, IpTempPtr指向新图数据 lpPtr=(char *)lplmg Data+( BufSize-LineBytes-y*Line Bytes) lpTempPtr=(char *)p Templmg Data+( BufSize-LineBytes-y*Line Bytes) for(x=1; x<bibi Width-1; x++)i f(*(lpP+x)=0){∥/是个黑点 ∥找八个相邻点 (unsigned char )*(IpPtrx+Line Bytes-1); (unsigned char) *(lpPtr+x+Line Bytes) ne=(unsigned char )(IpPtr+x+LineBytes+1); (unsigned char) *(lpPtr+x-1); w=(unsigned char )*(IpPtr+x-LineBytes-1);HDC hDc; HFILE hf; LONG x,y; int num; int nw,n,ne,w,e,sw,s,se; //我们处理的实际上是 256 级灰度图,不过只用到了 0 和 255 两种颜色。 if( NumColors!=256){ MessageBox(hWnd,"Must be a mono bitmap with grayscale palette!", "Error Message",MB_OK|MB_ICONEXCLAMATION); return FALSE; } OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER); //BufSize 为缓冲区大小 BufSize=OffBits+bi.biHeight*LineBytes; //为新图缓冲区分配内存 if((hTempImgData=LocalAlloc(LHND,BufSize))==NULL) { MessageBox(hWnd,"Error alloc memory!","Error Message",MB_OK| MB_ICONEXCLAMATION); return FALSE; } lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData); //拷贝头信息和位图数据 memcpy(lpTempImgData,lpImgData,BufSize); for (y=1;y<bi.biHeight-1;y++){ //注意 y 的范围是从 1 到高度-2 //lpPtr 指向原图数据,lpTempPtr 指向新图数据 lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes); lpTempPtr=(char *)lpTempImgData+(BufSize-LineBytes-y*LineBytes); for (x=1;x<bi.biWidth-1;x++){ if(*(lpPtr+x)==0){ //是个黑点 //查找八个相邻点 nw=(unsigned char)*(lpPtr+x+LineBytes-1); n=(unsigned char)*(lpPtr+x+LineBytes); ne=(unsigned char)*(lpPtr+x+LineBytes+1); w=(unsigned char)*(lpPtr+x-1); e=(unsigned char)*(lpPtr+x+1); sw=(unsigned char)*(lpPtr+x-LineBytes-1);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有