首 页免费论文实用文书站长学院客户留言繁體中文
设为首页
加入收藏
联系我们
您当前的位置:爱上范文网 -> 免费论文 -> 工学类论文 -> 免费论文内容 退出登录 用户管理
栏目导航
· 毕业论文 · 法学类论文
· 计算机论文 · 经济学论文
· 教育论文 · 管理论文
· 医学论文 · 哲学论文
· 理学类论文 · 工学类论文
· 社会类论文 · 农学类论文
热门免费论文
· [图文] 计算机毕业论文
· [组图] 英语专业毕业论文范...
· 毕业论文范文
· 图书馆管理系统
· [图文] 校园网站设计
· [图文] 网页设计制作规范
· 开题报告范文中文版...
· 经济学本科毕业论文...
· 二00五届大专财务会...
· 毕业生自我鉴定 ( 范...
相关免费论文
在TVGA上实现全屏幕动画
作者:佚名  来源:不详  发布时间:2006-3-6 9:38:57  发布人:admin

减小字体 增大字体


  


首先设置TVGA卡使其工作在0X5d方式下,屏幕分辨率是640×480×256色。然后重新构造调色板(RemapPalette()),使其适于显示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.C)。为连续显示一序列图像,先将序列图像的数目(如20)、存放图像数据文件的路径(f:\zyf\)、图像文件的名称(如z1.img,z2.img,…)录入一文本文件(如imggroup.lst),运行程序时只需键入AVD imggroup.lst即可。源程序中显示每幅图像的代码部分采用嵌入汇编语言编写,以得到较高的显示速度。在程序运行过程中,按下空格键暂停;连击空格键实现单帧播放;按下任意其它键恢复连续播放;按下退出键(Escape)退回DOS。在程序设计时,为避免在一个循环结束过渡到下一个循环开始时将要从序列的最后一幅图像切换到第一幅图像,因为这时由于图像运动的不连续性将产生突变,以至屏幕显示有抖动感或闪烁感,所以笔者采用了第一个循环正向播放,第二个循环反向播放(即正反相间)的方案。如果读者只希望正向播放,只须删除源程序中标有“//$$$”的四条语句行即可。



编译运行环境:本程序用MS C6.0编译通过,编译时请使用命令行参数/STACK:20480;图像数据文件来自大恒公司的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");
if(argc>1)
strcpy(flnm,argv[1]);
else
{
printf("\n Input the Image Group file name [.lst]:");
gets(flnm);
}
REDISP:
if(!strchr(flnm,'.'))
strcat(flnm,".lst");
if((fp=fopen(flnm,"rt"))==NULL)
{
printf("\n Open file failure!! \a\a\n");


[1] [2]  下一页


[] [返回上一页] [打 印] [收 藏]
∷相关免费论文评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright © 2002-2005 23fw.com(爱上范文网). All Rights Reserved .
沪ICP备06001737号