程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++讀取和存儲一幅BMP圖像

C++讀取和存儲一幅BMP圖像

編輯:C++入門知識

C++讀取和存儲一幅BMP圖像


 

 

 

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

 

 

輸入文件名:

\

 

顯示圖片:

\

存儲的文件:

\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved