- 相關(guān)推薦
在TVGA上實現(xiàn)全屏幕動畫
在圖像處理領(lǐng)域,當處理或分析序列運動圖像時,需要在屏幕上連續(xù)顯示這一序列圖像(即動畫播放),以便觀察處理效果或分析動態(tài)信息。一般游戲動畫的設(shè)計方法是慢速移動背景和快速刷新運動目標(小畫面),難以實現(xiàn)全屏動畫效果。為此筆者采用了匯編語言編程和快速寫屏的方法,在普通的486微機(主頻66M,配TVGA9000卡)上達到了每秒顯示10幅640×480×256灰階圖像的速度,效果令人滿意。
首先設(shè)置TVGA卡使其工作在0X5d方式下,屏幕分辨率是640×480×256色。然后重新構(gòu)造調(diào)色板(RemapPalette()),使其適于顯示256灰階的圖像。由于TVGA卡的顏色寄存器使用18位存儲模式,即R、G、B分量各占6位,而要顯示灰度圖像R、G、B分量必須賦予相同的值,所以就只能顯示區(qū)分26=64灰階的圖像。不過,實驗表明人眼已無法區(qū)分64灰階與256灰階圖像的差別。因此,在構(gòu)造調(diào)色板時,0~3索引值對應的R、G、B分量值都為0,4~7索引值對應的R、G、B分量值都為1,…,依次類推,這樣就可以正確顯示一幅256灰階的圖像。
以下是動畫播放序列運動圖像完整的源代碼(AVD.C)。為連續(xù)顯示一序列圖像,先將序列圖像的數(shù)目(如20)、存放圖像數(shù)據(jù)文件的路徑(f:\zyf\)、圖像文件的名稱(如z1.img,z2.img,…)錄入一文本文件(如imggroup.lst),運行程序時只需鍵入AVD imggroup.lst即可。源程序中顯示每幅圖像的代碼部分采用嵌入?yún)R編語言編寫,以得到較高的顯示速度。在程序運行過程中,按下空格鍵暫停;連擊空格鍵實現(xiàn)單幀播放;按下任意其它鍵恢復連續(xù)播放;按下退出鍵(Escape)退回DOS。在程序設(shè)計時,為避免在一個循環(huán)結(jié)束過渡到下一個循環(huán)開始時將要從序列的最后一幅圖像切換到第一幅圖像,因為這時由于圖像運動的不連續(xù)性將產(chǎn)生突變,以至屏幕顯示有抖動感或閃爍感,所以筆者采用了第一個循環(huán)正向播放,第二個循環(huán)反向播放(即正反相間)的方案。如果讀者只希望正向播放,只須刪除源程序中標有“//$$$”的四條語句行即可。
編譯運行環(huán)境:本程序用MS C6.0編譯通過,編譯時請使用命令行參數(shù)/STACK:20480;圖像數(shù)據(jù)文件來自大恒公司的VP32圖像采集板(512×512×256灰階)。
#include <graph.h>
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#define IMGGRP 30 //Image Number in a Cycle Showing
#define ESCAPE 27 //Stop Showing and Exit
#define SPACE 32 //Step Show--Hit Space Bar & One by One Showing
void RemapPalette(void);
void main (int argc,char *argv[])
{
static char grpflnm[IMGGRP][80];
char path[80],flnm[80],bindfn[80],arg[5];
char fnch[2]="\0";
char ch-imgnum[5];
int i,i1,i2,i12,ii,imgnum=IMGGRP;
int dispimgs,keyin,StepShow=0;
unsigned short int VSEG;
union REGS inregs,outregs;
FILE *fp;
unsigned short int row=480,col=512;
unsigned char fb[512];
int m-b=0;
clock-t cstart,cend; /* For clock */
unsigned short int FH; // File Handle
printf("\n ********** GROUP IMAGES ANIMATEDLY SHOWING ********* \n");
[1] [2] [3] [4]
【在TVGA上實現(xiàn)全屏幕動畫】相關(guān)文章:
相關(guān)辨識法的改進及其在伺服系統(tǒng)上的實現(xiàn)04-26
實現(xiàn)04-29
動畫迷的弟弟04-28
動畫實習心得03-21
動畫實習報告05-30
動畫實習總結(jié)05-23
動畫,我的世界04-28
動畫片05-01
影視動畫的影視性表演與動畫性表演論文04-30