分析软件封面特技显示的语言实现表达方式.docVIP

分析软件封面特技显示的语言实现表达方式.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分析软件封面特技显示的语言实现表达方式.doc

分析软件封面特技显示的语言实现软件编制人员都希望自己的软件能有一个漂亮的封面,如果能将图形动画技术应用到封面设计中,无疑会使封面更加美观醒目,为应用软件锦上添花。 本提供了一种封面设计技术,能模拟摄像机推拉镜头的效果,一推一拉,极具动态。我们知道,计算机图形处理的数据量非常大,要求的速度也很快。因此往往将图形处理软件固化成硬卡(如2.13汉字系统的神笔CAD卡),有了图形处理卡,对图形应用的编程相对要容易些,然而,由于资金等问题,大多数的PC用户都不具备此设备,难道说就只能望“卡”兴叹了么?回答当然是否定的,本文给出的就是一种纯软件方式的图形动画技术。它不要求额外的设备,只要有EGA/VGA适配器即可。 为实现图形的动画效果,例如实现软件封面汉字标题的推拉镜头效果,只要将一幅幅不同大小的汉字画面在很短的时间内依次显示在屏幕上即可。这里涉及到一个问题,那就是在显示下一个画面之前先要清屏,然后再写下一个画面。无论二者的速度多快,都将影响动画效果,用户能感受到写屏和清屏的过程。这将大煞风景。本文采用“幕后组织”的方法解决了这一问题。在EGA/VGA的10H模式下,视频缓冲区被分成二页,一个页为当前显示页,其内容即为屏幕上显示的内容;一个为输出活动页,所有的视频输出都针对此页,它可以是当前显示页,也可以不是。在Turbo C中提供了两个函数,setactivepage和setvisualpage分别完成设置图形输出活动页和设置图形可见页。如果我们将输出活动页设为非当前显示页,将一些不想让用户看到的处理过程放到活动页这一“幕后”去处理。然后切换当前显示页和活动输出页,那么用户看到的就是我们想让其看到的内容了。 为实现汉字标题的推拉镜头效果,需要在屏幕上显示不同大小的汉字,许多汉字系统都提供了汉字的放大功能,但一则需要汉字系统的支持,且有特殊的控制命令,在C语言中不易调用;二则其放大和缩小的级差皆为整数倍,不能体现缓慢变化的过程。所以笔者编制了一个西文状态下的汉字放大和缩小的函数,可用来完成汉字的任意放大和缩小(例如0.2倍)。同时,由于无须装载汉字系统,因而可节省大量的内存。 有了不同大小的汉字,只要在短时间内将之依次显示在屏幕上,就能产生动画效果。由于汉字的输出是采用在屏幕上画点的方法,所以速度很慢,简直让人无法忍受(其它的图形输出也存在这个问题)。最好是将图形整个存储,以便回显时获得较快的速度。C语言中有两个函数getimage和putimage能完成此功能,其响应速度是非常快的。但是由于这两个函数都是将图像保存在内存中,而图像的信息量往往很大,这就是说只能保存有限的图像,不能满足我们的要求。在这里采用了用文件来存储图像,突破了内存的限制,从理论上讲可以存储无限大。makeface程序用来产生封面,它创建两个文件:pic为二进制图像文件,保存一幅幅图像,textpic为一辅助文件,保存每一幅图像的长度。dispface用来显示封面,将pic中的内容依次读到内存,用putimage函数写回屏幕上。dispface完成封面显示的速度很快,如果将pic和textpic放在虚拟盘中,那么效果就更好了。需要说明的是,尽管采用用文件来存储图像可以不受内存空间的限制,但由于getimage和putimage函数现将图像放在内存中,如果图像很大,占用内存太多时,程序将会发生不可预料的结果。所以在存储较大的图像时,应采用分块存储,再分块会显的方法。一般来说一块以不超过一屏的三分之一 (639*120)为好。 本文仅提供一个简单的例子,用makeface建立pic和textpic之后,执行dispface程序,可在屏幕上看到蓝地红字的“汉字特技显示”几个字由大到小逐渐推远,再由小到大逐渐拉近,最后定于屏幕中央。参照本文,加以扩充和完善,相信不难编出漂亮、醒目的动画封面。 本程序的运行环境为Turbo C 2.0,EGA/VGA显示器。 附:makeface.c,jputhzc和dispface.c /*jputhz.c*/ /*调用格式:hzdisp(X列,Y行,横扩倍数,纵扩倍数,颜色,要显示的汉字)*/ #includestdio.h #includegraphics.h #includestring.h #includestdlib.h void hzdisp (x,y,x-rate,y-rate,color,cstring) unsigned int x,y; float x-rate,y-rate; int color; char cstring[]; { FILE *fp; register int n=0,i,j,k; register int x1,y1; char dot[73]; char sec1,sec2; unsigned l

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档