DOS真彩色模式下真彩色图像显示技术论文.docVIP

DOS真彩色模式下真彩色图像显示技术论文.doc

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

  DOS真彩色模式下真彩色图像显示技术论文 .freels公司的TGUI94XX、TGUI96XX,Cirrus Logic的GD543X、GD544X,Tseng Laboratories的ET4000, ARK Logic的ARK1000,、ARK2000,S3 Incorporated的 S3 86CXXX等等。它们除了继续支持标准VGA模式外,都支持16色、256色、32K高彩色、64K高彩色及16.7M真彩色VESA BIOS 扩展模式,版本大多为VESA 1.2, 卡上具有32K、64K及16.7M DAC,.freelall 模式下编译通过。但执行程序并不依赖所编译的硬件环境, 曾经在装有 1M VRAM 的TGUI9440、TGUI9680、ARK2000PV、S3 86C868 等VESA局部总线、PCI局部总线、甚至ISA总线的TVGA8900D(也支持VESA 1.2标准, 1M以下的OEM模式号同TGUI9440)显示卡的486~586各档PC机的DOS环境下均获通过。 示例程序对Super VGA卡VESA BIOS高、真彩色扩展模式编程具有一般性。对本文未提到的其它高、真彩色显示卡,只要其支持VESA标准(Version 1.1),不加修改或稍作修改便可使用;对更高分辨率,只要显示适配卡配2M VRAM, 便可作115H、116H、117H模式的编程, 例程中只要修改highcolor()、truecolor()两函数中n、m的宽高界值和addr的上界。但更重要的是: 程序运行以前用显示适配卡所配调整DRAM像素时钟或调整彩色显示器扫描频率的实用程序, 将像素时钟和扫描频率调整到该卡现行分辨率所要求的值上, 例如, Cirrus GD5434卡(2M VRAM)要在117H模式下顺利仿真显示16.7M真彩色, 须在DOS下先执行 CLMODE.EXE t640=60 t800=60t1024=60 t1280=0, 程序便可顺利显示高彩色图像。 // 24位PCX高、真彩色图像显示例程 #include stdio.h #include stdlib.h #include dos.h #include bios.h #include conio.h #include io.h #include mem.h #include ftl.h #include alloc.h unsigned long dataoffset,Line-bytes; unsigned long addr; unsigned int Curpage,ode(unsigned int mode); void VesaInfo(unsigned int mode); void map(void); void Selectpage(unsigned int page); void highcolor(void); void truecolor(void); main() // 主函数 { PCXHEAD header; char *filename,c; printf(Please enter the 640X480 24bit RGB mode PCX fil ename: ); gets(filename); if((fp=fopen(filename, rb))==NULL) { SetVesaMode(0x03); puts(File reading error); exit(1); } fread( (char *) header, 1, sizeof(PCXHEAD), fp); ax - header.ymin + 1; printf(Image information: true color image age); printf(Press select 1 or 2 : ); if ((c=getch())==1) { highcolor(); SetVesaMode(0x03); } else if (c==2) { truecolor(); SetVesaMode(0x03); } else { printf(This is not high-color true-color image !) ; exit(1); } } fclose(fp); return 0; } // 设置VESA BIOS扩展模式函数 void SetVesaMode(unsigned int mode) { union REGS r; unsigned int setmode=1; r.x.ax=0x4f02; r.x.bx=mode; int86(0x10, r, if (r.x.ax!=0x4f) se

文档评论(0)

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

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

1亿VIP精品文档

相关文档