關於BMP檔案格式 |
尚未結案
|
dorisfish
一般會員 發表:5 回覆:3 積分:1 註冊:2004-12-03 發送簡訊給我 |
有兩個問題想請教
1.利用BITMAPFILEHEADER & BITMAPINFOHEADER抓取BMP檔案資料在BCB5.0是可行的,但是移到BCB6.0會發生抓出資料不正確的問題(已經可以正確抓到檔案資訊,自訂)但是還是想請問一下 2.BMP檔案格式中,有定義int xresolution(pixels per meter)跟int yresolution(pixels per meter),但是無論是利用"BITMAPFILEHEADER & BITMAPINFOHEADER"還是"自訂結構"去抓,出來的值都是0,這一點我非常疑惑@@?但是其他資料都是正確的(例如影像長寬...) <(_ _)>麻煩大家
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: 有兩個問題想請教 1.利用BITMAPFILEHEADER & BITMAPINFOHEADER抓取BMP檔案資料在BCB5.0是可行的,但是移到BCB6.0會發生抓出資料不正確的問題(已經可以正確抓到檔案資訊,自訂)但是還是想請問一下 2.BMP檔案格式中,有定義int xresolution(pixels per meter)跟int yresolution(pixels per meter),但是無論是利用"BITMAPFILEHEADER & BITMAPINFOHEADER"還是"自訂結構"去抓,出來的值都是0,這一點我非常疑惑@@?但是其他資料都是正確的(例如影像長寬...) <(_ _)>麻煩大家dorisfish你好: BITMAPFILEHEADER和BITMAPINFOHEADER,我都不會用..想請問有沒有程式 可以貼出來,至少讓我們知道你是怎麼用的。這樣也比較好解決你的問題。 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
您好:
不曉得您的情況是不是像下面連結一樣
http://delphi.ktop.com.tw/topic.php?topic_id=22856 順心
|
dorisfish
一般會員 發表:5 回覆:3 積分:1 註冊:2004-12-03 發送簡訊給我 |
謝謝版大,這果然解決我第一個疑問<(_ _)>
但是有關於第二個問題,我還是有點疑惑
根據BMP檔案格式(檔頭部份)
fileheader(14bytes)+infomation header(40bytes)
其中infomation header(40bytes)定義如下:
typedef struct{
unsigned int HeaderSize;
int Width;
int Height;
unsigned short int Planes;
unsigned short int Bits;
unsigned int Compression;
unsigned int Imagesize;
int Xresolution;
int Yresolution;
unsigned int ncolours;
unsigned int importantcolours;
}bmpinfoheader;
所以我計算出我想要取的資訊的位置
程式撰寫如下: //XPelsPerMeter
fseek(fptr_open, 38, 0);
fread(&infoheader.Xresolution,4,1,fptr_open);
AnsiString XPelsPerMeter = infoheader.Xresolution;
XPelsPerMeter = XPelsPerMeter / 100 *2.54;
Memo1->Lines->Add("X-axis Resolution = "+XPelsPerMeter);
//YPelsPerMeter
fseek(fptr_open, 42, 0);
fread(&infoheader.Xresolution,4,1,fptr_open);
AnsiString YPelsPerMeter = infoheader.Yresolution;
YPelsPerMeter = YPelsPerMeter / 100 *2.54;
Memo1->Lines->Add("Y-axis Resolution = "+YPelsPerMeter);
但是讀取出來的資訊是"0",但是根據我的認知,應該是"pixels per meter",起碼是ㄧ個較大的數字,我之所以想要取得這一個資訊是因為想要知道此BMP檔案的解析度(dpi)
目前取其他檔頭位置(ㄧ樣是計算read出都沒有問題)
以下是目前結果圖示: 請知道的前輩,不吝指教<(_ _)>
發表人 - dorisfish 於 2005/02/03 20:33:28 發表人 - dorisfish 於 2005/02/03 20:34:52 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |