分享
 
 
 

GDI原理

王朝百科·作者佚名  2010-01-04
窄屏简体版  字體: |||超大  

Windows 98和Microsoft Windows NT中的图形主要由GDI32.DLL动态连结程式库输出的函式来处理。在Windows 98中,这个GDI32.DLL实际是利用16位元GDI.EXE动态连结程式库来执行许多函式。在Windows NT中,GDI.EXE只用于16位元的程式。

这些动态连结程式库呼叫您安装的视讯显示器和任何印表机呼叫驱动程式中的常式。视讯驱动程式存取视讯显示器的硬体,印表机驱动程式将GDI命令转换为各种印表机能够理解的代码或者命令。显然,不同的视讯显示卡和印表机要求不同的装置驱动程式。

因为PC相容机种上可以连接许多种不同的视讯设备,所以,GDI的主要目的之一是支援与装置无关的图形。Windows程式应该能够毫无困难地在Windows支援的任意一种图形输出设备上执行,GDI通过将您的程式和不同输出设备的特性隔离开来的方法来达到这一目的。

图形输出设备分为两大类:位元映射设备和向量设备。大多数PC的输出设备是位元映射设备,这意味著它们以图点构成的阵列来表示图像,这类设备包括视讯显示卡、点阵印表机和雷射印表机。向量设备使用线来绘制图像,通常局限於绘图机。

许多传统的电脑图形程式设计方式都是完全以向量为主的,这意味著使用向量图形系统的程式与硬体有著一定层次的隔离。输出设备用图素表示图形,但是程式与程式介面之间并不是用图素进行沟通的。您当然可以使用Windows GDI作为一个高阶的向量绘制系统,同时也可以将它用於比较低阶的图素操作。

从这方面来看,Windows GDI和传统的图形介面语言之间的关系,就如同C和其他程式设计语言之间的关系一样。C以它在不同作业系统和环境之间的高度可携性而闻名,然而C也以允许程式写作者进行低阶系统呼叫而闻名,这些呼叫在其他高阶语言中通常是不可能的。正如C有时被认为是一种「高级组合语言」一样,您可以认为GDI是图形设备硬体之间的一种高阶介面。

您已经看到,Windows内定使用图素坐标系统。大多数传统的图形语言使用「虚拟」坐标系,其水平和垂直轴的范围在0到32,767之间。虽然有些图形语言不让您使用图素坐标,但是Windows GDI允许您使用两种坐标系统之一(甚至依据实际度量衡的坐标系)。您可以使用虚拟坐标系以便让程式独立於硬体之外,或者也可以使用设备坐标系而完全迎合硬体设备提供的环境。

某些程式写作者认为一旦开始使用操作图素的程式设计方式,就放弃了装置无关性。我们在上一章看到,这不完全是正确的,其中的诀窍是在与装置无关的方式中使用图素。这要求图形介面语言为程式提供一些方法来确定设备的硬体特征,并进行适当的调节。例如,在SYSMETS程式中,我们根据标准系统字体字元的图素大小来确定萤幕上的文字间距,这种方法允许程式针对解析度、文字大小和方向比例各不相同的显示卡进行相应的调节。您将在本章看到一些用於确定显示尺寸的其他方法。

早期,许多使用者在单色显示器上执行Windows。即使是几年前,笔记本电脑也还只有灰阶显示。为此,GDI的设计保证了您可以在编写一个程式时不必太担心色彩问题-也就是说,Windows可以将色彩转换为灰阶显示。甚至在今天,Windows 98使用的视讯显示已经具有了不同的色彩能力(16色、256色、「high-Color」以及「true-color」)。虽然,彩色喷墨印表机的成本已经很低了,但是大多数使用者仍然坚持使用黑白印表机。盲目地使用这些设备是可以的,但是您的程式也应该能决定在某种显示设备上有多少色彩可以使用,从而最佳利用硬体功能。

当然,就如同您编写C程式时,为了使它在其他电脑上执行而遇到一些微妙的移植性问题一样,您也可能不小心让装置依赖性溜进您的Windows程式,这就是不与硬体完全隔离的代价。您还应该知道Windows GDI的局限。虽然可以在显示器上到处移动图形物件,但GDI通常是一个静态的显示系统,只有有限的动画支援。如果需要为游戏编写复杂的动画,就应该研究一下Microsoft DirectX,它提供了您需要的支援。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有