寫BMP檔案格式

2021-09-13 19:39:48 字數 1245 閱讀 4870

file *fp; // 定義乙個檔案指標

bmp_header bmpheader; // 定義乙個 bmp 檔案頭的結構體

bmp_info bmpinfo; // 定義乙個 bmp 檔案資訊結構體

if((fp = fopen(bmpfile.c_str(), "wb")) == null)

bmpinfo.bsize = 40;  //固定

bmpinfo.bwidth = width;

bmpinfo.bheight = height;

bmpinfo.bbitcount = bitcount;

//計算四位元組對齊的寬度*高度

long imagesize4bytes;

imagesize4bytes = bmpinfo.bwidth*sizeof(bmp_point);

if(imagesize4bytes % 4!=0)

imagesize4bytes *= bmpinfo.bheight;

bmpinfo.bimagesize = imagesize4bytes;

bmpinfo.bcompression = 0;

bmpinfo.bclrimportant = 0;

bmpinfo.bclrused = 0;

bmpinfo.bxpelspermeter = 0;

bmpinfo.bypelspermeter = 0;

bmpinfo.bplanes = 1; // 調色盤數量

bmpheader.btype = 0x4d42; //bm ascii碼

bmpheader.boffset = 54;

bmpheader.bsize = bmpinfo.bimagesize + bmpheader.boffset;

bmpheader.breserved1 = 0;

bmpheader.breserved2 = 0;

//讓 fp 指向 bmp 檔案的開始

//第 2 個引數是偏移量 第三個引數是檔案起始位址 所以此函式執行成功後檔案指

fseek(fp, 0, seek_set);

// 寫入檔案

fwrite(&bmpheader, sizeof(bmpheader), 1, fp);

fwrite(&bmpinfo, sizeof(bmpinfo), 1, fp);

fwrite(pdata, 1, bmpinfo.bimagesize, fp);

fclose(fp);

BMP檔案格式

bmp檔案格式 bmp檔案大體上分成四個部分,如圖1所示。位 件頭bitmapfileheader 位圖資訊頭bitmapinfoheader 調色盤 palette 圖象資料 圖1.windows位 件結構示意圖 第一部分為位 件頭bitmapfileheader,是乙個結構,其定義如下 type...

BMP檔案格式

典型的位 件格式通常包含下面幾個資料塊 下面的部分將會詳細地描述位 件中儲存的資料。需要注意的是這是標準點陣圖的檔案格式,其他一些位圖影象可能根據生成檔案的應用程式不同所使用格式可能會有細微的區別。這部分是識別資訊,典型的應用程式會首先普通讀取這部分資料以確保的確是位 件並且沒有損壞。這部分告訴應用...

BMP檔案格式

位置 大小 說明 0000h 2 bm 檔案標識 0002h 4 檔案大小 0006h 4 保留 0 000ah 4 從檔案開始到位圖資料之間的偏移量 000eh 4 位圖資訊頭,用來描述點陣圖的顏色 壓縮方法等。0012h 4 點陣圖的寬度,以象素為單位 0016h 4 點陣圖的高度,以象素為單位...