如何用c將bmp圖的點陣圖資料讀到陣列中

時間 2021-09-06 05:52:07

1樓:

一種方法直接讀檔案

bmp檔案的檔案頭和資訊頭共佔用54位元組 跳過54位元組直接讀取點陣圖資料

stream stream = file.openread("image.bmp"); // 開啟位**件

byte buffer = new byte[stream.length - 54]; // 緩衝區,檔案長度減去檔案頭和資訊頭的長度

stream.position = 54; // 跳過檔案頭和資訊頭

stream.read(buffer, 0, buffer.length); // 讀取點陣圖資料,點陣圖資料是顛倒的

另一種方法先載入影象 然後從中複製點陣圖資料

bitmap bmp = new bitmap(image.fromfile("image.bmp")); // 載入影象

bitmapdata bmdat = bmp.lockbits(new rectangle(point.empty, bmp.

size), imagelockmode.readonly, pixelformat.format32bppargb); // 鎖定點陣圖

byte buffer = new byte[bmdat.stride * bmdat.height]; // 緩衝區,用來裝載點陣圖資料

marshal.copy(bmdat.scan0, buffer, 0, buffer.length); // 複製點陣圖資料

bmp.unlockbits(bmdat); // 解除鎖定

2樓:匿名使用者

【求原始碼】求一個能把bmp點陣圖讀到陣列裡的c語言原始碼,網上bmp格式看不懂。。。謝謝

用c#讀取一張bmp**的資料並轉化為灰度圖儲存到檔案中 20

3樓:匿名使用者

bmp就是個矩陣,只是每個點裡面有三個數而已,直接讀

如何用matlab將讀入的bmp影象格式檔案的象素資料寫入陣列,並以文字檔案格式(*.txt)輸出。 5

4樓:大樹根

假設你有**test.bmp,可以用如下的方式讀入matlab,然後寫到txt。

img_test = imread('test.bmp');

dlmwrite('b1.txt',img_test(:,:,1));

dlmwrite('b2.txt',img_test(:,:,3));

dlmwrite('b3.txt',img_test(:,:,3));

bmp是有3個波段的,所以這裡寫了三次,分別存入三個檔案。

C語言讀取黑白BMP圖,如何用C語言程式從bmp格式的圖片中讀取圖片的灰度值

1.黑白bmp檔案圖的畫素大多是從62位元組 從0數起 開始。具體從哪一位元組開始,決定於檔案中第10位元組 從0數起 開始處4位元組的整形數是多少.因為檔案頭後面不是緊接著畫素值.2.黑白bmp圖的一個畫素用一個bit表示。一般0表示背景 預設為白色 1表示前景色 預設為黑色 即一個位元組代表相鄰...

如何用c 對bmp圖固定閾值二值化

讀到每個畫素點的rgb值,計算一下 如何用c語言實現對影象的二值化?該函式用於對影象進行閾值分割運算 引數 lpstr lpdibbits 指向源dib影象指標 long lwidth 源影象寬度 象素數 long lheight 源影象高度 象素數 bool imagechangeproc thr...

c 如何用檔案流將資料儲存到檔案中

玻璃麥田 ofstream myf filename ofstream檔案輸出流類,定義檔案物件myf,檔名 帶路徑 由自己設定,預設ios out ios trunc方式。即物件具有輸出能力,如檔案存在,清除檔案內容。if myf.fail 判斷開啟檔案是否失敗,失敗則返回。myf 程式設計 高手...