當前位置:首頁 » 編程語言 » c語言bmp是什麼意思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言bmp是什麼意思

發布時間: 2022-07-04 13:22:43

A. 用c語言分析bmp文件屬性

BMP文件是圖形文件,用系統自帶的圖像查看就可以了.

B. 以C語言編寫的BMP文件和以C++編寫的BMP文件區別是什麼

沒有區別,BMP只是一個文件後綴名罷了,但都是以二進制方式存放在硬碟
-物聯網校企聯盟技術部

C. c語言怎麼判斷文件是.bmp文件

unsignedchar*pix=newunsignedchar[bm.widthpiexl*bm.height];SetBitmapPiex(bitmap,bm.widthpiexl*bm.height,pix);這樣子便可以得到圖像的像素參數,存放在pix數組內,BMP文件由文件頭、點陣圖信息頭、顏色信息和圖形數據四部分組成。顏色信息包含圖像所用到的顏色表,顯示圖像時需用到這個顏色表來生成調色板.我們需要做的是,新建PIX文件後,用WINHEX打開,准備好模板文件,提取BMP中的顏色信息,粘貼到PIX文件的頭文件中,然後保存即可.可以用ddraw.h讀詳細資料請看msdn,希望能幫到你。

D. C語言 BMP文件

BMP格式文件是點陣圖,裡面保存的是像素點的紅\綠\藍三原色的亮度,並沒有保存什麼特定的圖形,所以BMP文件不能直接讀取出特定圖形的個數.
當然通過圖形識別技術,也是可以識別出直線,圓等幾何信息.
文字識別技術可以識別出其中包含的文字信息
臉部識別技術可以識別出人臉部的特徵信息.
這些演算法都比較復雜.都是不能直接識別的.

當然也有能直接讀出特定圖形的文件格式,這些格式統稱矢量圖,比如.dwg(AutoCAD), .dxf, .wmf等.
其文件內容就是記錄圖片的什麼地方有什麼圖形.

E. C語言 讀取並顯示bmp圖像文件

打開.bmp有兩種方法,
一種是讀數據而已,對數據操作,再送回.bmp文件中.
第二種你想在C中看到圖片,那就麻煩啦,你要中斷10H功能鍵.然後讀進來,而且不可以讀太大的圖片,要讀太大的圖片還要考慮擴充內存的問題.

要是你只是想用C的程序去打開一個.bmp圖片,而圖片不是在C中顯示,而是用別的圖片瀏覽工具的話,哈哈~~剛剛找了挺久的,沒找到答案,要是你找到了盡快告訴我。我Q313208612

F. C語言:BMP圖像

此程序的入口點為MainTask_Init,即平台起來後會先調用這個函數,這個函數的工作:
1、首先調用 registerDVBKeycodeCallback函數,把MainmenuKeyProcess作為函數指針傳遞進去,這樣,當有按鍵按下時平台會回調這個函數;
2、創建一個消息隊列,用於容納按鍵消息,同時把隊列的ID返回給Test_queueID,方便後續訪問
3、最後啟動消息泵函數demoTask,這個函數負責處理Test_queueID指向的消息隊列的消息。
整篇文章沒有看到任何跟BMP處理相關的信息,不知道你說的點陣圖處理跟這個程序有啥關系。。。

G. 如何用C語言編程來顯示一個bmp文件(要源碼 最好有注釋 謝謝)

c語言讀bmp文件的話,需要你理解bmp文件格式,這個你可以自己去網路一下,我這里有個在vc中實現的源碼。

#include<windows.h>
#include<stdio.h>
#include<string.h>
#include<malloc.h>
unsignedchar*pBmpBuf;//讀入圖像數據的指針
intbmpWidth;//圖像的寬
intbmpHeight;//圖像的高
RGBQUAD*pColorTable;//顏色表指針
intbiBitCount;//圖像類型,每像素位數
boolreadBmp(char*bmpName)
{
//二進制讀方式打開指定的圖像文件
FILE*fp=fopen(bmpName,"rb");
if(fp==0)return0;
//跳過點陣圖文件頭結構BITMAPFILEHEADER
fseek(fp,sizeof(BITMAPFILEHEADER),0);
//定義點陣圖信息頭結構變數,讀取點陣圖信息頭進內存,存放在變數head中
BITMAPINFOHEADERhead;
fread(&head,sizeof(BITMAPINFOHEADER),1,fp);
//獲取圖像寬、高、每像素所佔位數等信息
bmpWidth=head.biWidth;
bmpHeight=head.biHeight;
biBitCount=head.biBitCount;
//定義變數,計算圖像每行像素所佔的位元組數(必須是4的倍數)
intlineByte=(bmpWidth*biBitCount/8+3)/4*4;
//灰度圖像有顏色表,且顏色表表項為256
if(biBitCount==8){
//申請顏色表所需要的空間,讀顏色表進內存
pColorTable=newRGBQUAD[256];
fread(pColorTable,sizeof(RGBQUAD),256,fp);
}
//申請點陣圖數據所需要的空間,讀點陣圖數據進內存
pBmpBuf=newunsignedchar[lineByte*bmpHeight];
fread(pBmpBuf,1,lineByte*bmpHeight,fp);
//關閉文件
fclose(fp);
return1;
}
boolsaveBmp(char*bmpName,unsignedchar*imgBuf,intwidth,intheight,
intbiBitCount,RGBQUAD*pColorTable)
{
//如果點陣圖數據指針為0,則沒有數據傳入,函數返回
if(!imgBuf)
return0;
//顏色表大小,以位元組為單位,灰度圖像顏色表為1024位元組,彩色圖像顏色表大小為0
intcolorTablesize=0;
if(biBitCount==8)
colorTablesize=1024;
//待存儲圖像數據每行位元組數為4的倍數
intlineByte=(width*biBitCount/8+3)/4*4;
//以二進制寫的方式打開文件
FILE*fp=fopen(bmpName,"wb");
if(fp==0)return0;
//申請點陣圖文件頭結構變數,填寫文件頭信息
BITMAPFILEHEADERfileHead;
fileHead.bfType=0x4D42;//bmp類型
//bfSize是圖像文件4個組成部分之和
fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)
+colorTablesize+lineByte*height;
fileHead.bfReserved1=0;
fileHead.bfReserved2=0;
//bfOffBits是圖像文件前3個部分所需空間之和
fileHead.bfOffBits=54+colorTablesize;
//寫文件頭進文件
fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);
//申請點陣圖信息頭結構變數,填寫信息頭信息
BITMAPINFOHEADERhead;
head.biBitCount=biBitCount;
head.biClrImportant=0;
head.biClrUsed=0;
head.biCompression=0;
head.biHeight=height;
head.biPlanes=1;
head.biSize=40;
head.biSizeImage=lineByte*height;
head.biWidth=width;
head.biXPelsPerMeter=0;
head.biYPelsPerMeter=0;
//寫點陣圖信息頭進內存
fwrite(&head,sizeof(BITMAPINFOHEADER),1,fp);
//如果灰度圖像,有顏色表,寫入文件
if(biBitCount==8)
fwrite(pColorTable,sizeof(RGBQUAD),256,fp);
//寫點陣圖數據進文件
fwrite(imgBuf,height*lineByte,1,fp);
//關閉文件
fclose(fp);
return1;
}
intmain()
{
charinFileName[90],outFileName[90];
printf("請輸入原始點陣圖文件的文件名:");
scanf("%s",inFileName);
printf("請輸入加密程序產生的新點陣圖文件的文件名:");
scanf("%s",outFileName);
//讀入指定BMP文件進內存
readBmp(inFileName);
//輸出圖像的信息
printf("width=%d,height=%d,biBitCount=%d ",bmpWidth,bmpHeight,biBitCount);
//將圖像數據存檔
saveBmp(outFileName,pBmpBuf,bmpWidth,bmpHeight,biBitCount,pColorTable);
//清除緩沖區,pBmpBuf和pColorTable是全局變數,在文件讀入時申請的空間
delete[]pBmpBuf;
if(biBitCount==8)
delete[]pColorTable;
return0;
}

H. 怎樣用c語言實現BMP讀存

直接用fread讀取就可以。你得知道bmp的格式,頭文件存放的信息,讀出出來就知道文件的大小,解析度,大小端等。在讀取每一位的顏色信息。注意bmp是按行倒敘存取,還有注意bmp有位元組對齊的。

I. bmp點陣圖文件格式是什麼,在c語言中給定屏幕坐標顏色畫點

bmp是有自己的存儲規范的

你可以搜一下 不是太復雜
要畫點
先要讀bmp頭
獲取顏色類型 圖片長寬
然後seek到數據區開頭
根據顏色類型和長寬值,解析出每行點的顏色值
並轉為你畫圖板的顏色類型值, 賦值即可。

J. C語言 讀取黑白BMP圖

1.
黑白BMP文件圖的像素大多是從62位元組(從0數起)開始。具體從哪一位元組開始,
決定於文件中第10位元組(從0數起)開始處4位元組的整形數是多少.
因為文件頭後面不是緊接著像素值.
2.
黑白BMP圖的一個像素用一個bit表示。一般0表示背景(預設為白色),1表示前景色(預設為黑色)。即一個位元組代表相鄰的8個像素。
3.
320*240的黑白BMP圖,每行320個像素用40個位元組表示,240行,應佔40*240=9600位元組。加上前頭62位元組,文件大小應為9662位元組。
4.
BMP圖像素的存儲順序是自底向上。所以文件最後40個位元組表示的是第一行的像素值。
5.
行寬如不是8的倍數,也擴展到8的倍數。如行寬321,
則每行像素需用41個位元組存儲。你的行寬320,恰好是8的倍數,沒有這個問題。