论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
在TVGA上实现全屏幕动画
   在图像处理领域,当处理或分析序列运动图像时,需要在屏幕上连续显示这一序列图像(即动画播放),以便观察处理效果或分析动态信息。一般游戏动画的设计方法是慢速移动背景和快速刷新运动目标(小画面),难以实现全屏动画效果。为此笔者采用了汇编语言编程和快速写屏的方法,在普通的486微机(主频66,配TVGA9000卡)上达到了每秒显示10幅640×480×256灰阶图像的速度,效果令人满意。
首先设置TVGA卡使其工作在0X5d方式下,屏幕分辨率是640×480×256色。然后重新构造调色板(ReapPalette()),使其适于显示256灰阶的图像。由于TVGA卡的颜色寄存器使用18位存储模式,即R、G、B分量各占6位,而要显示灰度图像R、G、B分量必须赋予相同的值,所以就只能显示区分26=64灰阶的图像。不过,实验表明人眼已无法区分64灰阶与256灰阶图像的差别。因此,在构造调色板时,0~3索引值对应的R、G、B分量值都为0,4~7索引值对应的R、G、B分量值都为1,…,依次类推,这样就可以正确显示一幅256灰阶的图像。
以下是动画播放序列运动图像完整的源代码(AVD.)。为连续显示一序列图像,先将序列图像的数目(如20)、存放图像数据文件的路径(f:\zyf\)、图像文件的名称(如z1.ig,z2.ig,…)录入一文本文件(如iggrup.lst),运行程序时只需键入AVD iggrup.lst即可。源程序中显示每幅图像的代码部分采用嵌入汇编语言编写,以得到较高的显示速度。在程序运行过程中,按下空格键暂停;连击空格键实现单帧播放;按下任意其它键恢复连续播放;按下退出键(Esape)退回DS。在程序设计时,为避免在一个循环结束过渡到下一个循环开始时将要从序列的最后一幅图像切换到第一幅图像,因为这时由于图像运动的不连续性将产生突变,以至屏幕显示有抖动感或闪烁感,所以笔者采用了第一个循环正向播放,第二个循环反向播放(即正反相间)的方案。如果读者只希望正向播放,只须删除源程序中标有“//$$$”的四条语句行即可。
编译运行环境:本程序用S 6.0编译通过,编译时请使用命令行参数/STAK:20480;图像数据文件来自大恒公司的VP32图像采集板(512×512×256灰阶)。
#inlude <graph.h>
#inlude <stdi.h>
#inlude <ds.h>
#inlude <stdlib.h>
#inlude <string.h>
#inlude <ni.h>
#inlude <tie.h>
#define IGGRP 30 //Iage Nuber in a yle Shing
#define ESAPE 27 //Stp Shing and Exit
#define SPAE 32 //Step Sh--Hit Spae Bar ≈ ne by ne Shing
vid ReapPalette(vid);
vid ain (int arg,har *argv[])
{
stati har grpfln[IGGRP][80];
har path[80],fln[80],bindfn[80],arg[5];
har fnh[2]="\0";
har h-ignu[5];
int i,i1,i2,i12,ii,ignu=IGGRP;
int dispigs,keyin,StepSh=0;
unsigned shrt int VSEG;
unin REGS inregs,utregs;
FILE *fp;
unsigned shrt int r=480,l=512;
unsigned har fb[512];
int -b=0;
lk-t start,end; /* Fr lk */
unsigned shrt int FH; // File Handle
printf("\n ********** GRUP IAGES ANIATEDLY SHING ********* \n");
if(arg>1)
strpy(fln,argv[1]);
else
{
printf("\n Input the Iage Grup file nae [.lst]:");
gets(fln);
}
REDISP:
if(!strhr(fln,'.'))
strat(fln,".lst");
if((fp=fpen(fln,"rt"))==NULL)
{
printf("\n pen file failure!! \a\a\n");
printf("\n Please hek flling files hether exist:");
printf("\n%s",fln);
printf("\n\n Nte:The file extensin nae is appended autatially,");
printf("\n suh as [.lst]!");
exit(1);
}
inregs.x.ax=0x005d; // Set TVGA de:640x480x256 levels
int86(0x10,≈inregs,≈utregs);
ReapPalette(); // Reap all Palette

未完...点击下方链接下载完整文档

在TVGA上实现全屏幕动画

在图像处理领域,当处理或分析序列运动图像时,需要在屏幕上连续显示这一序列图像(即动画播放),以便观察处理效果或分析动态信息。一般游戏动画的设计方法是慢速移动背景和快速刷新运动目标(小画面),难以实现全屏动画效果。为此笔者采用了汇编语言编程和快速写
  • 上一篇:在DOS实模式下直接存取4GB内存
  • 下一篇:DOS界面下通用图形编辑软件的设计
  • 《通信原理》的系统教学法
    局域网中的通信协议
    小议第三代移动通信及发展趋势预
    论3G技术打造“高起点、高质量、
    试析计算机通信网络安全及防护对
    基于GPRS的无线智能家居系统方案
    计算机通信与网络课程中网络资源
    数字移动多媒体案例分析
    关于通信工程设计项目组织结构评
    windows nt环境下fddi网卡驱动程
    信息时代计算机通信技术的应用
    关于低压电力线载波通信技术的研
    物联网对计算机通信网络的影响
    浅论光纤通信技术的特点和发展趋
    海拉尔通信段ZXA10综合接入网常
    智能网业务的网间互通
    基于WinDis 32技术实现网络通
    智能网业务的网间互通
    从企业需求看视频系统安全机制
    SIP-I在Alcatel 5020 MGC中的
    基于短信网关WAP推送的实现
    增值短消息服务平台的设计与实
    网络知识挖掘在数字参考咨询中
    UNIX TCP/IP网络文件传输的实
    UNIX TCP/IP网络文件传输的实
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

    Copyright 2006-2020 © 论文天下 All rights reserved 本站所有内容均由SPider自动索引,如有侵权请联系QQ:2486851删除