计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

SVGA图像处理(1)

2015-03-15 01:10
导读:计算机应用论文论文,SVGA图像处理(1)样式参考,免费教你怎么写,格式要求,科教论文网提供的这篇文章不错:svga彩色图形卡是一种超级vga卡,它不仅具有640×480×16色图像显示模式,而且具
svga彩色图形卡是一种超级vga卡,它不仅具有640×480×16色图像显示模式,而且具有640×480×256色图像显示模式。
microsoft c/c 7.0提供了丰富的图形库函数,尤其是提供了对svga卡所能设置的高分辨率图像模式的支持,利用丰富的图形库函数进行组合,就可以完成各种需要的功能。例如图像处理,动画编程,界面制作等。这一点对编程者来说无疑是十分方便的。
然而遗憾的是许多图形库函数在一些特定的显示模式(如-vers256color(0x0101)方式(640×480×256)等256色模式)下却无法正常工作,例如使用例程-getimage()和-putimage()时常会出现死机和不能正常工作(出现雪花或不进行任何操作)等现象。用-grstatus()函数检测调用函数的状态时,返回图形错误或警告信息,常见的有图形错误(-1)和不支持请求的视频方式(-2)等,而这些函数在vga下工作正常。
根据vesa图形标准,在图像模式下,svga的video buffer(视频缓冲区)是顺序的链结构,且图像数据是按行序顺序存放的,一个像素(屏幕上的一个点)用存储器的一个字节(256色)表示。视频存储器按字节连续寻址,与主机内存采用映射方式通讯,一次只能读写64kb的视频存储器,通过改变段偏移量(i/o操作)来寻址不同的段,即实现对全部视频存储器的操作。
同时,直接访问svga的寄存器进行读写操作,充分利用硬件的支持可以大大加快图形的处理速度。实践表明,其运行速度明显优于图形库中提供的函数(以-getimage()和-putimage()为例快30倍)。
笔者通过对视频存储器(video buffer)的直接访问实现了256色图像显示模式下图像块的读写功能。下面附上在vesa标准的0x0101(256)图像显示模式下-getimage()和-putimage()两个函数的源程序,该源程序是用microsoft c/c 7.0编写的。这两个函数在compaq 486及兼容机上运行通过。
-getimage()和-putimage()两个函数的参数类型说明及意义与microsoft c/c 7.0中相应函数的参数类型说明及意义相同。

(转载自http://zw.nseac.coM科教作文网)


/* 将图像存储到缓冲区中 */
void-getimage256(x1,y1,x2,y2,image)
short x1,y1,x2,y2;
char-huge *image;
{
char-far*buf,-huge *q;
long u;
short m,n,i,j,block;
m=abs(x2-x1) 1;
n=abs(y2-y1) 1;
(short)*image=m;
(short)*(image 2)=n;/* 保留图像的高度与宽度 */
q=image 4;
u=min(x1,x2);
u =min(y1,y2) * 640l;
block=(short)(u/65536l);
u-=block*65536l;/* 计算偏移量 */
-fp-seg(buf)=0xa000;
-fp-off(buf)=u;
-outp(0x3c4,14),
-outp(0x3c5,block^2);/* 设置页寄存器 */
for (i=0; i
    上一篇:传统图书馆与虚拟图书馆比较分析(1) 下一篇:没有了