可以幫我解讀一下程式內容嗎? |
缺席
|
maxgto
一般會員 發表:5 回覆:14 積分:3 註冊:2007-11-28 發送簡訊給我 |
下面程式是我截取別人分享的CODE 功能是讀取BMP
我想請問一下 1.下面的READ跟WRITE是否都要做才能BMP讀取完在存放(我試著將紅色移除會發現圖片右上方出現黑線) 2. 請問RGBQUAD[4][256](對BMP256的圖沒問題)? 我目前查了一些資料知道4是RGB(3BYTES) (1BYTE) 256是調色盤 不過我試著修改RGBQUAD[4][16]卻不能對BMP(16)的圖進行讀取和存放? 3.請問file.read(RGBQUAD[0], sizeof(RGBQUAD)); 和file.read(PIXEL[0], sizeof(PIXEL));可否說明一下為何要用RGBQUAD[0]和PIXEL[0] #include using std::cout; using std::cin; using std::endl; #include using std::fstream; using std::ios; typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; typedef long LONG; void main(){ fstream file; int i,j; char fileName[32], RGBQUAD[4][256],PIXEL[472][560] ; WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; //將資料從檔案輸入到記憶體 cout << "Open FileName: "; cin >> fileName; file.open(fileName, ios::in|ios::binary); file.write((char*)&bfType, sizeof(WORD)); file.write((char*)&bfSize, sizeof(DWORD)); file.write((char*)&bfReserved1, sizeof(WORD)); file.write((char*)&bfReserved2, sizeof(WORD)); file.write((char*)&bfOffBits, sizeof(DWORD)); file.write((char*)&biSize, sizeof(DWORD)); file.write((char*)&biWidth, sizeof(LONG)); file.write((char*)&biHeight, sizeof(LONG)); file.write((char*)&biPlanes, sizeof(WORD)); file.write((char*)&biBitCount, sizeof(WORD)); file.write((char*)&biCompression, sizeof(DWORD)); file.write((char*)&biSizeImage, sizeof(DWORD)); file.write((char*)&biXPelsPerMeter, sizeof(LONG)); file.write((char*)&biYPelsPerMeter, sizeof(LONG)); file.write((char*)&biClrUsed, sizeof(DWORD)); file.write((char*)&biClrImportant, sizeof(DWORD)); file.write(RGBQUAD[0], sizeof(RGBQUAD)); file.write(PIXEL[0], sizeof(PIXEL)); file.close(); |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |