C++源碼:
#include#include #include #include #include #include using namespace std; void main () { char fileName[30]; //定義打開圖像名字 char *buf; //定義文件讀取緩沖區 char *p; int r,g,b,pix; HWND wnd; //窗口句柄 HDC dc; //繪圖設備環境句柄 FILE *fp; //定義文件指針 FILE *fpw; //定義保存文件指針 DWORD w,h; //定義讀取圖像的長和寬 DWORD bitCorlorUsed; //定義 DWORD bitSize; //定義圖像的大小 BITMAPFILEHEADER bf; //圖像文件頭 BITMAPINFOHEADER bi; //圖像文件頭信息 cout<<請輸入要打開文件的名字:; cin>>fileName; if((fp=fopen(fileName,rb))==NULL) { cout<<文件未找到!; exit(0); } fread(&bf,sizeof(BITMAPFILEHEADER),1,fp);//讀取BMP文件頭文件 fread(&bi,sizeof(BITMAPINFOHEADER),1,fp);//讀取BMP文件頭文件信息 w=bi.biWidth; //獲取圖像的寬 h=bi.biHeight; //獲取圖像的高 bitSize=bi.biSizeImage; //獲取圖像的size buf=(char*)malloc(w*h*3); //分配緩沖區大小 fseek(fp,long(sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)),0);//定位到像素起始位置 fread(buf,1,w*h*3,fp); //開始讀取數據 wnd=GetForegroundWindow(); //獲取窗口句柄 dc=GetDC(wnd); //獲取繪圖設備 int x=40; int y=40; p=buf; for(int j=0;j
輸入文件名:
顯示圖片:
存儲的文件: