C語言BMP檔案,如何用C語言程式設計來顯示一個bmp檔案

時間 2022-06-13 11:50:12

1樓:匿名使用者

bmp格式檔案是點陣圖,裡面儲存的是畫素點的紅\綠\藍三原色的亮度,並沒有儲存什麼特定的圖形,所以bmp檔案不能直接讀取出特定圖形的個數.

當然通過圖形識別技術,也是可以識別出直線,圓等幾何資訊.

文字識別技術可以識別出其中包含的文字資訊

臉部識別技術可以識別出人臉部的特徵資訊.

這些演算法都比較複雜.都是不能直接識別的.

當然也有能直接讀出特定圖形的檔案格式,這些格式統稱向量圖,比如.dwg(autocad), .dxf, .wmf等.

其檔案內容就是記錄**的什麼地方有什麼圖形.

2樓:匿名使用者

自己找個庫或自己看看bmp檔案格式自己解析

3樓:匿名使用者

讀取檔案方法:先定義一個int型別的檔案描述符變數,再用open函式(適合在unix或linux環境下,若是在windows環境下應先定義一個file型別的指標變數,再呼叫fopen函式)開啟所要讀取的bmp檔案即可。如果你要更改bmp檔案的顏色,那麼就看你對bmp格式的**的儲存原理知道多少了,bmp是無失真壓縮**的一種演算法,一般是由**頭部,檔案頭部,顏色表等組成,要改變顏色,就需要改變顏色表中的內容,當然由於bmp演算法在不斷改進,其過程和組成部分可能有變化,上面的僅是一般情況。

如何用c語言程式設計來顯示一個bmp檔案

4樓:匿名使用者

bool bitblt( hdc hdcdest, // 點陣圖顯示目標裝置環境中 int nxdest, // 點陣圖顯示在客戶區的x座標 int nydest, // 點陣圖顯示在客戶區的y座標 int nwidth, // 點陣圖顯示的寬度 int nheight, // 點陣圖顯示的長度 hdc hdcsrc

如何用c語言顯示bmp** 10

5樓:匿名使用者

呵呵,你是想做什麼層面?

1:從0開始解析bmp檔案,然後繪製

弄清楚bmp檔案結構,參見下面一片日誌

靠著硬解析,在螢幕上一個畫素一個畫素的建立原有的bmp影象。

2:win32api;這個得靠loadimage這個api。

具體用法請查閱msdn。問度娘msdn loadimage即可。

3:使用gui開發框架,在控制元件上繪製**。超簡單。

你們要求是什麼。對著一個個看,如果你是做課程設計等大型作業的話,肯定是選1。我看選2,3一點技術含量也沒有。調api或者相應方法完成,對於底層資料結構不瞭解,學了等於沒學。

**量是成倍的差距。數十倍。

怎麼用c語言中的fopen函式開啟bmp格式的影象檔案

6樓:匿名使用者

#include

#include

int main ()

while ((iread = fread (szbuf, 1, sizeof (szbuf), fpphoto)) > 0)

fwrite (szbuf, 1, iread, fptarget) ;

while ((iread = fread (szbuf, 1, sizeof (szbuf), fptext)) > 0)

fwrite (szbuf, 1, iread, fptarget) ;

fclose (fpphoto) ;

fclose (fptext) ;

fclose (fptarget) ;

return 0 ;}

7樓:匿名使用者

fopen看到的檔案都是位元組流。

你可以和開啟任何檔案一樣開啟bmp,但你獨到的是位元組流。

用c語言讀取24位點陣圖bmp檔案

8樓:空雪夢見

如果橫向的一行叫做一個「掃描線」的話

那麼每條掃描線的第一個位元組一定是對齊到4位元組邊界的就比如,假設一條掃描線21個畫素,那麼一條掃描線就是21*3=63位元組

實際上每條掃描線會佔用64位元組,因為下一條掃描線的第一個位元組要對齊到4位元組邊界

(所謂對齊到邊界,就是 除4餘0)

注意:以上是憑印象說的。檔案裡儲存和記憶體裡儲存是不是一樣的不太確定……

最簡單的解決方案,你要載入的bmp都確定寬是4的倍數就可以了

9樓:頂峰風光無限

行畫素錯了一位,導致影象傾斜了。

c語言怎麼判斷檔案是.bmp檔案

10樓:匿名使用者

檔案頭部前2位是0x42 0x4d 對應ascii碼的bm

c語言,怎樣讀取一個bmp**?

怎麼樣在c語言中顯示bmp**,我要完整正確的程式,急!

11樓:未來需努力點綴

lz  你好

c語言要顯示bmp點陣圖需要使用win32的api , 具體如下:

bool bitblt(

hdc hdcdest, // 點陣圖顯示目標裝置環境中int nxdest,  // 點陣圖顯示在客戶區的x座標int nydest,  // 點陣圖顯示在客戶區的y座標int nwidth,  // 點陣圖顯示的寬度int nheight, // 點陣圖顯示的長度hdc hdcsrc,  // 源裝置環境(包含需要顯示的bmp點陣圖)

int nxsrc,   // 在當前點陣圖中顯示的開始x位置int nysrc,   // 在當前點陣圖中顯示的開始y位置dword dwrop  // 對映模式

);以下是源**:

程式執行效果:

希望能幫助你哈

ps:附件是整個工程 , 用vs2008建立的專案 , 裡面包含相應資源

12樓:匿名使用者

單純靠c語言是難以實現的老兄,要麼用api,或者用mfc

如何用c語言程式從bmp格式的**中讀取**的灰度值

13樓:尼瑪真響亮

lz我可以給你一個我以前寫過的簡單解析bmp的**。可以取出rgb,再算灰度估計就很容易了吧。

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

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

如何用C語言迴圈讀取檔案內容,怎麼用C語言讀取 TXT檔案中的字串

迴圈讀取一個檔案的內容。這樣做沒有任何意義,不如把讀取的內容保持在變數當中,節省空間時間。如果非要反覆讀取的話可以使用rewind函式把檔案指標重置。函式名 rewind 功 能 將檔案內部的位置指標重新指向一個流 資料流 檔案 的開頭注意 不是檔案指標而是檔案內部的位置指標,隨著對檔案的讀寫檔案的...

c語言程式設計為什麼要多檔案呢,C語言中,如何用多個檔案編寫程式

源 確實是多檔案的。不過編譯好的目標 在執行期調入記憶體後就無所謂檔案的概念了,然而不同 段之間的界限仍然存在。模組化主要有以下幾個優點 1.便於複用 通用性強的重複的功能只要寫一遍就可以了,下次要用在其它程式上時只要更改很小的部分或者可以不用更改。2.便於多人協作。在設計軟體之初就可以很清楚地分配...