欧美另类日韩中文色综合,天堂va亚洲va欧美va国产,www.av在线播放,大香视频伊人精品75,奇米777888,欧美日本道免费二区三区,中文字幕亚洲综久久2021

Turbo C位圖和BMP位圖格式分極及應用

時間:2023-05-01 07:39:24 計算機論文 我要投稿
  • 相關推薦

Turbo C位圖和BMP位圖格式分極及應用

近來,圖像功能在計算機上的應用十分廣泛,一種方便快捷而實用的方法是首先利用圖像掃描儀將圖像數(shù)據自動生成并存入計算機,再利用Windows的PAINTBRUH功能進行加工修改,成為獨立的圖像文件。但是,仍然有一個問題:PAINTBRUH軟件只能在Windows環(huán)境下運行。因此要顯示一幅圖像(.MSP位圖、.BMP位圖、PCX位圖),也要運行龐大的Windows,顯然不方便。為此,筆者編寫了一個BMP位圖文件直接顯示在屏幕上的程序。利用Turbo C位圖格式,將BMP格式進行轉換,實現(xiàn)了這一功能。

一、Turbo C位圖格式

Borlond公司的Turbo C是目前在微機上最為流行的C語言版本。它為軟件開發(fā)者提供了豐富的屏幕操作與圖形功能函數(shù)。其中getimage( )函數(shù)用于將屏幕內的某矩形區(qū)域復制到內存緩沖區(qū),putimage( )函數(shù)將內存緩沖區(qū)中的內容再復制到屏幕上。但由于圖像事先還沒有出現(xiàn)在屏幕上,所以,不能使用getimage( )函數(shù)填寫供putimage( )函數(shù)顯示的內存圖像數(shù)據。不過可以把圖像數(shù)據按getimage( )函數(shù)產生的格式填于內存緩沖區(qū)中,然后調用putimage( )函數(shù),顯示內存緩沖區(qū)圖像,下面分析getimage( )函數(shù)產生的格式:

getimage (int letf, int top, int night, int bottm, *buf)

其中,left, top——矩形區(qū)域左上角坐標(x,y)。

right, bottom——矩形區(qū)域右上角坐標(x,y)。

* buf——指向存儲屏幕數(shù)據的內存指針。

在內存中,圖像數(shù)據是按行存放的。頭兩個字節(jié)為圖像的寬度,接下去兩個字節(jié)為圖像的高度(均為低字節(jié)在前,高字節(jié)在后)。后面是真正的圖像數(shù)據,它以圖像的寬度為單位,先是圖像的第一行第三位面的內容,然后是第一行第二位面的內容;第一行第一位面的內容;第一行第零位面的內容。第一行完后,接第二行的四個位面,第三行的四個位面等等。當屏幕狀態(tài)為16色時,則需4個彩色頁面。這時,如果圖像的寬度為8的整數(shù)倍時,則每

行所需的字節(jié)數(shù)為:

number=(right-left 8) 18*4

如果圖像的寬度不為8的倍數(shù)據時,則

number=(ceil ((right-left)/8)*4)

其中,ceil (righ-left)8為取大于(right-left)/8的最小整數(shù)

則圖像數(shù)據所需字節(jié)總數(shù)為:

number * (bottom-top 1)

則所需內存緩沖區(qū)字節(jié)總數(shù)為:

6 number * (bottom -top 1)

這是因為頭四個字節(jié)存放圖像的寬和高,而緩沖區(qū)最后2個字節(jié)無意義,可以填零。

@@T5S04700.GIF;圖 1@@

這樣,每行每頁面的字節(jié)數(shù)為:

p=number/4

如圖1所示(設寬、高為16×16)

其中,圖像的真正數(shù)據在每個頁面的前m列,即:

當寬度為8的倍數(shù)據時,m=P-1,此時每頁面的最后一列可為零。而當寬度不為8的倍

數(shù)時,m=P。

結合圖1 m=2,即數(shù)據在每頁面的前2列。

二、BMP位圖格式

MS Windows的.BMP圖像文件可以表示單色或直至24位的彩色圖像,.BMP文件是與設備無關的。.BMP文件分為文件首部和文件體兩部分。文件首部描述文件和圖像的有關參數(shù)和彩色表,主體是圖像的位圖數(shù)據。.BMP文件的格式如表1所示。

@@T5S04701.GIF;表1 BMP文件的格式@@

@@T5S04702.GIF;表2 BMP與VGA彩色編碼對照@@

.BMP文件的文件體記錄圖像的位圖數(shù)據。從圖像的左下角開始依次掃描每根掃描線。對于單色,每個象素用1位表示;16色用4位表示一個象素,256色用一個字節(jié),而24位彩色用3個字節(jié)。

但.BMP位圖的彩色編碼與VGA彩色編碼不同,必須經過轉換才能用C語言在屏幕上顯示。表2給出了.BMP位圖彩色編碼與VGA彩色編碼的對照。

三、.BMP位圖向Turbo C位圖的轉換

當VGA視頻內存在選擇640×480模式時占用4個位面。每個位面上的一位對應一個點。而.BMP位圖則采用壓縮法的組織形式,兩者顯然不同。因此,也需要一個變換過程,見圖2。

根據這一原理,首先進行彩色編碼轉換,然后將.BMP位圖數(shù)轉換成C位圖格式,寫入內存緩沖區(qū)的適

[1] [2] [3] 

【Turbo C位圖和BMP位圖格式分極及應用】相關文章:

基于位圖的物探彩色剖面速繪方法實現(xiàn)04-29

醫(yī)療單位圖書館與醫(yī)療信息化04-29

Smurf1拮抗BMP-2對C2C12細胞的誘導成骨作用04-30

結構分災抗震設計:概念和應用04-28

BMP系列熱固性聚酰亞胺樹脂基復合材料的應用進展04-26

BMP家族的研究近況04-27

雙極膜技術在電合成中的應用04-28

TMS320C62x的并行性和應用研究04-28

CSR 60°二極C型鐵磁場特性的研究04-29

應用T/A策略克隆乙肝病毒pC/C及C基因04-27