亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

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

時間:2024-06-29 20:24:00 計算機畢業(yè)論文 我要投稿

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

近來,圖像功能在計算機上的應用十分廣泛,一種方便快捷而實用的方法是首先利用圖像掃描儀將圖像數(shù)據(jù)自動生成并存入計算機,再利用Windows的PAINTBRUH功能進行加工修改,成為獨立的圖像文件。但是,仍然有一個問題:PAINTBRUH軟件只能在Windows環(huán)境下運行。因此要顯示一幅圖像(.MSP位圖、.BMP位圖、PCX位圖),也要運行龐大的Windows,顯然不方便。為此,筆者編寫了一個BMP位圖文件直接顯示在屏幕上的程序。利用Turbo C位圖格式,將BMP格式進行轉(zhuǎn)換,實現(xiàn)了這一功能。
一、Turbo C位圖格式
Borlond公司的Turbo C是目前在微機上最為流行的C語言版本。它為軟件開發(fā)者提供了豐富的屏幕操作與圖形功能函數(shù)。其中g(shù)etimage( )函數(shù)用于將屏幕內(nèi)的某矩形區(qū)域復制到內(nèi)存緩沖區(qū),putimage( )函數(shù)將內(nèi)存緩沖區(qū)中的內(nèi)容再復制到屏幕上。但由于圖像事先還沒有出現(xiàn)在屏幕上,所以,不能使用getimage( )函數(shù)填寫供putimage( )函數(shù)顯示的內(nèi)存圖像數(shù)據(jù)。不過可以把圖像數(shù)據(jù)按getimage( )函數(shù)產(chǎn)生的格式填于內(nèi)存緩沖區(qū)中,然后調(diào)用putimage( )函數(shù),顯示內(nèi)存緩沖區(qū)圖像,下面分析getimage( )函數(shù)產(chǎn)生的格式:
getimage (int letf, int top, int night, int bottm, *buf)
其中,left, top——矩形區(qū)域左上角坐標(x,y)。
right, bottom——矩形區(qū)域右上角坐標(x,y)。
* buf——指向存儲屏幕數(shù)據(jù)的內(nèi)存指針。
在內(nèi)存中,圖像數(shù)據(jù)是按行存放的。頭兩個字節(jié)為圖像的寬度,接下去兩個字節(jié)為圖像的高度(均為低字節(jié)在前,高字節(jié)在后)。后面是真正的圖像數(shù)據(jù),它以圖像的寬度為單位,先是圖像的第一行第三位面的內(nèi)容,然后是第一行第二位面的內(nèi)容;第一行第一位面的內(nèi)容;第一行第零位面的內(nèi)容。第一行完后,接第二行的四個位面,第三行的四個位面等等。當屏幕狀態(tài)為16色時,則需4個彩色頁面。這時,如果圖像的寬度為8的整數(shù)倍時,則每
行所需的字節(jié)數(shù)為:
number=(right-left 8) 18*4
如果圖像的寬度不為8的倍數(shù)據(jù)時,則
number=(ceil ((right-left)/8)*4)
其中,ceil (righ-left)8為取大于(right-left)/8的最小整數(shù)
則圖像數(shù)據(jù)所需字節(jié)總數(shù)為:
number * (bottom-top 1)
則所需內(nèi)存緩沖區(qū)字節(jié)總數(shù)為:
6 number * (bottom -top 1)
這是因為頭四個字節(jié)存放圖像的寬和高,而緩沖區(qū)最后2個字節(jié)無意義,可以填零。
@@T5S04700.GIF;圖 1@@
這樣,每行每頁面的字節(jié)數(shù)為:
p=number/4
如圖1所示(設寬、高為16×16)
其中,圖像的真正數(shù)據(jù)在每個頁面的前m列,即:
當寬度為8的倍數(shù)據(jù)時,m=P-1,此時每頁面的最后一列可為零。而當寬度不為8的倍
數(shù)時,m=P。
結(jié)合圖1 m=2,即數(shù)據(jù)在每頁面的前2列。
二、BMP位圖格式
MS Windows的.BMP圖像文件可以表示單色或直至24位的彩色圖像,.BMP文件是與設備無關(guān)的。.BMP文件分為文件首部和文件體兩部分。文件首部描述文件和圖像的有關(guān)參數(shù)和彩色表,主體是圖像的位圖數(shù)據(jù)。.BMP文件的格式如表1所示。
@@T5S04701.GIF;表1 BMP文件的格式@@
@@T5S04702.GIF;表2 BMP與VGA彩色編碼對照@@
.BMP文件的文件體記錄圖像的位圖數(shù)據(jù)。從圖像的左下角開始依次掃描每根掃描線。對于單色,每個象素用1位表示;16色用4位表示一個象素,256色用一個字節(jié),而24位彩色用3個字節(jié)。
但.BMP位圖的彩色編碼與VGA彩色編碼不同,必須經(jīng)過轉(zhuǎn)換才能用C語言在屏幕上顯示。表2給出了.BMP位圖彩色編碼與VGA彩色編碼的對照。
三、.BMP位圖向Turbo C位圖的轉(zhuǎn)換
當VGA視頻內(nèi)存在選擇640×480模式時占用4個位面。每個位面上的一位對應一個點。而.BMP位圖則采用壓縮法的組織形式,兩者顯然不同。因此,也需要一個變換過程,見圖2。
根據(jù)這一原理,首先進行彩色編碼轉(zhuǎn)換,然后將.BMP位圖數(shù)轉(zhuǎn)換成C位圖格式,寫入內(nèi)存緩沖區(qū)的適當位置。
@@T5S04703.GIF;圖2 從BMP位圖到VGA視頻內(nèi)存的變換過程@@
為了便于參考,筆者編制了一個程序。本程序只要給出.BMP文件的名字,程序會自行在屏幕上顯示出來。需說明的是,本程序只能用于小于64K的圖像。但也可以將一幅大的.BMP圖像分成若干小圖像即可。對圖像文件格式轉(zhuǎn)換感興趣的讀者,也不難將本程序拓展到自己的應用領(lǐng)域。程序附后。
# include

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

計算機畢業(yè)論文-Turbo C位圖和BMP位圖格式分極及應用03-06

維生素C的臨床應用03-16

電子版護理記錄單表格式的設計和應用05-26

財產(chǎn)保險實務中對格式合同的理解和應用03-22

應用文駁論文格式06-29

醫(yī)學綜述的格式和寫法11-20

論文的結(jié)構(gòu)和排版格式02-14

論文寫作規(guī)范和格式03-18

TMS320C54x系列DSP中的應用03-19

主站蜘蛛池模板: 98精品国产综合久久久久久欧美| 美女国产毛片a区内射| 久久无码中文字幕免费影院 | 麻豆精品新a v视频中文字幕| 99re热免费精品视频观看| 亚洲综合色88综合天堂| 亚洲日本va午夜在线影院| 国产亚洲欧美日韩亚洲中文色| 岛国精品一区免费视频在线观看| 色妞色综合久久夜夜| 国产私拍大尺度在线视频| 国产精品久久久久久久久久久免费看| 狠狠躁夜夜躁人人爽天天bl| 呻吟国产av久久一区二区| 宁阳县| 精品一区二区三区四区五区| 乱中年女人伦av二区| 亚洲精品鲁一鲁一区二区三区| 尤溪县| 久久精品成人免费观看三| 亚洲欧美在线x视频| 北辰区| 久99久热只有精品国产15| 乌克兰少妇xxxx做受野外| 国产高清午夜人成在线观看,| 性色av一区二区三区无码| 69成人免费视频无码专区| 精品亚洲综合成人网| 亚洲aⅴ天堂av天堂无码| 亚洲另类无码专区首页| 国产精品午夜成人免费观看| 天天干伊人| 91高潮视频| 999zyz玖玖资源站永久| 亚洲欧洲日产国码中文字幕| 一本色道久久综合亚州精品蜜桃| 天天碰免费上传视频| 国产精品熟女视频一区二区| 日本黄页网站免费观看| 欧美国产伦久久久久久久| 少妇人妻精品无码专区视频|