導航:首頁 > 數據處理 > 數據的保存順序是什麼

數據的保存順序是什麼

發布時間:2023-01-05 13:58:55

Ⅰ BMP文件中圖像數據是按什麼順序存放的

BMP文件的數據按照從文件頭開始的先後順序分為四個部分:
◆ 點陣圖文件頭(bmp file header): 提供文件的格式、大小等信息
◆ 點陣圖信息頭(bitmap information):提供圖像數據的尺寸、位平面數、壓縮方式、顏色索引等信息
◆ 調色板(color palette):可選,如使用索引來表示圖像,調色板就是索引與其對應的顏色的映射表
◆ 點陣圖數據(bitmap data):圖像數據區
BMP文件頭結構體定義如下:
typedef struct tagBITMAPFILEHEADER
{ UINT16 bfType; //2Bytes,必須為"BM",即0x424D 才是Windows點陣圖文件
DWORD bfSize; //4Bytes,整個BMP文件的大小
UINT16 bfReserved1; //2Bytes,保留,為0
UINT16 bfReserved2; //2Bytes,保留,為0
DWORD bfOffBits; //4Bytes,文件起始位置到圖像像素數據的位元組偏移量} BITMAPFILEHEADER;
BMP信息頭結構體定義如下:
typedef struct _tagBMP_INFOHEADER
{DWORD biSize; //4Bytes,INFOHEADER結構體大小,存在其他版本I NFOHEADER,用作區分
LONG biWidth; //4Bytes,圖像寬度(以像素為單位)
LONG biHeight; //4Bytes,圖像高度,+:圖像存儲順序為Bottom2Top,-:Top2Bottom
WORD biPlanes; //2Bytes,圖像數據平面,BMP存儲RGB數據,因此總為1
WORD biBitCount; //2Bytes,圖像像素位數
DWORD biCompression; //4Bytes,0:不壓縮,1:RLE8,2:RLE4
DWORD biSizeImage; //4Bytes,4位元組對齊的圖像數據大小
LONG biXPelsPerMeter; //4 Bytes,用象素/米表示的水平解析度
LONG biYPelsPerMeter; //4 Bytes,用象素/米表示的垂直解析度
DWORD biClrUsed; //4 Bytes,實際使用的調色板索引數,0:使用所有的調色板索引
DWORD biClrImportant; //4 Bytes,重要的調色板索引數,0:所有的調色板索引都重要
}BMP_INFOHEADER;
BMP調色板結構體定義如下:
typedef struct _tagRGBQUAD
{BYTE rgbBlue; //指定藍色強度
BYTE rgbGreen; //指定綠色強度
BYTE rgbRed; //指定紅色強度
BYTE rgbReserved; //保留,設置為0} RGBQUAD;
1,4,8點陣圖像才會使用調色板數據,16,24,32點陣圖像不需要調色板數據,即調色板最多隻需要256項(索引0 - 255)。
顏色表的大小根據所使用的顏色模式而定:2色圖像為8位元組;16色圖像位64位元組;256色圖像為1024位元組。其中,每4位元組表示一種顏色,並以B(藍色)、G(綠色)、R(紅色)、alpha(32位點陣圖的透明度值,一般不需要)。即首先4位元組表示顏色號1的顏色,接下來表示顏色號2的顏色,依此類推。
顏色表中RGBQUAD結構數據的個數有biBitCount來確定,當biBitCount=1,4,8時,分別有2,16,256個表項。
當biBitCount=1時,為2色圖像,BMP點陣圖中有2個數據結構RGBQUAD,一個調色板佔用4位元組數據,所以2色圖像的調色板長度為2*4為8位元組。
當biBitCount=4時,為16色圖像,BMP點陣圖中有16個數據結構RGBQUAD,一個調色板佔用4位元組數據,所以16像的調色板長度為16*4為64位元組。
當biBitCount=8時,為256色圖像,BMP點陣圖中有256個數據結構RGBQUAD,一個調色板佔用4位元組數據,所以256色圖像的調色板長度為256*4為1024位元組。
當biBitCount=16,24或32時,沒有顏色表。
BMP圖像數據區
點陣圖數據記錄了點陣圖的每一個像素值,記錄順序是在掃描行內是從左到右,掃描行之間是從下到上。點陣圖的一個像素值所佔的位元組數:
當biBitCount=1時,8個像素佔1個位元組;
當biBitCount=4時,2個像素佔1個位元組;
當biBitCount=8時,1個像素佔1個位元組;
當biBitCount=24時,1個像素佔3個位元組;
Windows規定一個掃描行所佔的位元組數必須是4的倍數(即以long為單位),不足的以0填充,
一個掃描行所佔的位元組數計算方法:
DataSizePerLine= (biWidth* biBitCount+31)/8;
// 一個掃描行所佔的位元組數
DataSizePerLine= DataSizePerLine/4*4; // 位元組數必須是4的倍數
點陣圖數據的大小(不壓縮情況下):
DataSize= DataSizePerLine* biHeight;
顏色表接下來位為點陣圖文件的圖像數據區,在此部分記錄著每點像素對應的顏色號,其記錄方式也隨顏色模式而定,既2色圖像每點佔1位(8位為1位元組);16色圖像每點佔4位(半位元組);256色圖像每點佔8位(1位元組);真彩色圖像每點佔24位(3位元組)。所以,整個數據區的大小也會隨之變化。究其規律而言,可的出如下計算公式:圖像數據信息大小=(圖像寬度*圖像高度*記錄像素的位數)/8。

Ⅱ 數據的儲存結構主要有哪兩種有什麼主要區別

數據的儲存結構主要有:順序存儲結構和鏈式存儲結構。

主要區別

一、存儲單元的連續性不同

鏈式存儲結在構計算機中用一組任意的存儲單元存儲線性表的數據元素(這組存儲單元可以是連續的,也可以是不連續的)。

順序存儲結構在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素。

二、優缺點不同

空間上

順序比鏈式節約空間。是因為鏈式結構每一個節點都有一個指針存儲域。

存儲操作上:

順序支持隨機存取,方便操作

插入和刪除上:

鏈式的要比順序的方便(因為插入的話順序表也很方便,問題是順序表的插入要執行更大的空間復雜度,包括一個從表頭索引以及索引後的元素後移,而鏈表是索引後,插入就完成了)

三、適用方向不同
鏈式存儲適用於在較頻繁地插入、刪除、更新元素時,而順序存儲結構適用於頻繁查詢時使用。

Ⅲ 數據存儲單位從小到大排列順序是

數據存儲單位從小到大排列順序是PB、EB、ZB、YB。
數據存儲對象包括數據流在加工過程中產生的臨時文件或加工過程中需要查找的信息。數據以某種格式記錄在計算機內部或外部存儲介質上。數據存儲要命名,這種命名要反映信息特徵的組成含義。數據流反映了系統中流動的數據,表現出動態數據的特徵;數據存儲反映系統中靜止的數據,表現出靜態數據的特徵。

閱讀全文

與數據的保存順序是什麼相關的資料

熱點內容
原生之罪四個程序員為什麼被殺 瀏覽:146
如何隱藏篩選的數據 瀏覽:200
石龍崗寵物市場在哪裡 瀏覽:198
松崗廚房凈水器代理商怎麼選 瀏覽:770
信息機房地面採用什麼裝修材料 瀏覽:97
有哪些玩家自由交易的手游 瀏覽:442
obd上的匯流排數據有哪些 瀏覽:103
如何解綁微信上的實名信息 瀏覽:896
30萬怎麼交易 瀏覽:803
沒入伙的房子怎麼交易 瀏覽:225
為什麼程序員連網不需要問密碼 瀏覽:530
許昌職業技術學院的小學教育怎麼樣 瀏覽:279
分析商業數據的軟體叫什麼 瀏覽:49
華為實體店的3a數據線多少錢 瀏覽:575
小米如何區分數據線是否是快充 瀏覽:438
手機號碼數據同步是什麼意思 瀏覽:328
數據線是哪個國家 瀏覽:594
成都塗鴉代理加盟怎麼樣 瀏覽:758
2006棗庄技術學院怎麼查學歷 瀏覽:677
物流終驗收作業的程序是什麼 瀏覽:17