正在加载图片...
下面的这段程序实现了bmp2txt的功能,结果存到文件bmp2 etxt. txt中。 BOOL Bmp2Txt(HWND hWnd) DWORD OffBits, BufSize LPBITMAPINFOHEADER Iplmg Data; LPSTR HFILE hf 1,j, k, h, tint, grayindex tchar TransHeight, Trans Width: ∥先用起泡排序,将灰度值按从小到大排列,同时调整对应的字符位置 for(i=0;i<94;i++) if(gr[i]>grIDi tchar=(il, tint=gri chi=chlori=gri ch[il=tchar,gr[i=tint OrbIts为 BITMAPINFOHEADER结构长度加调色板的大小 OffBits=bf. bfoffBits-sizeof( BITMAPFILEHEADER) BufSize= OffBits+ bi. biHeight* LineBytes,要开的缓冲区的大小 Iplmg Data=(LPBITMAPINFOHEADER)GlobalLock(hlmg Data) Trans width= bi bi width/8;/每行字符的个数 TransHeight= bi biweight/16;∥共有多少行字符 hf= Creat("c: \\bmp2txt txt",0) for(i=0; i<TransHeight; i++)4 for(=0 j<Trans Width j ++)4 for(h=0h<8h++){/求出8*16小块中各象素灰度之和 BufSize-LineBytes-(i16+k) LineBytes 8+h; grayindex+=(unsigned char )"IpPtr grayindex/=16*8;除以整个面积}; 下面的这段程序实现了 bmp2txt 的功能,结果存到文件 bmp2txt.txt 中。 BOOL Bmp2Txt(HWND hWnd) { DWORD OffBits,BufSize; LPBITMAPINFOHEADER lpImgData; LPSTR lpPtr; HFILE hf; int i, j, k,h,tint,grayindex; char tchar; int TransHeight, TransWidth; //先用起泡排序,将灰度值按从小到大排列,同时调整对应的字符位置 for(i=0;i<94;i++) for(j=i+1;j<95;j++){ if(gr[i]>gr[j]){ tchar=ch[i],tint=gr[i]; ch[i]=ch[j],gr[i]=gr[j]; ch[j]=tchar,gr[j]=tint; } } //OffBits 为 BITMAPINFOHEADER 结构长度加调色板的大小 OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER); BufSize=OffBits+bi.biHeight*LineBytes;//要开的缓冲区的大小 lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); TransWidth = bi.biWidth/8; //每行字符的个数 TransHeight = bi.biHeight/16; //共有多少行字符 hf=_lcreat("c:\\bmp2txt.txt",0); for(i=0;i<TransHeight;i++){ for(j=0;j<TransWidth;j++){ grayindex=0; for(k=0;k<16;k++) for(h=0;h<8;h++){ //求出 8*16 小块中各象素灰度之和 lpPtr=(char*)lpImgData+ BufSize-LineBytes-(i*16+k)*LineBytes+ j*8+h; grayindex+=(unsigned char)*lpPtr; } grayindex/=16*8; //除以整个面积
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有