如何用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 如何用檔案流將資料儲存到檔案中

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

如何用c 的mfc繪製柱狀圖

育知同創教育 用c 的mfc繪製柱狀圖的方法如下 1 取groupbox的區域,並儲存四個值 左,上,右,下 獲取螢幕座標 cwnd getdlgitem idc static chart getwindowrect rect 計算x軸y軸基本單位 int dx rect.right rect.le...

如何將ecel中的一列中的資料輸入到c語言中的陣列

這兩樣不相同,excel是一種儲存資料的格式,c是一種運算元據的語言。用c可以操作和修改excel的內容。 5 i if xi j a j a j 1 a j x printf now array a n for i 0 i 6 i printf 4d a i printf n return 0 簡...