设备大小

假定你想要绘制边长为1英寸的正方形,为了完成这一操作,程序员/Windows操作系统 需要知道在视频显示器上多少像素相当于1英寸。GetDeviceCaps函数可以帮助你获取关于输出设备(显示器、打印机)物理尺寸的信息。

 

视频显示器和打印机是两种完全不同的设备。对于“Resolution”(分辨率)一词的用法是二者最大的不同!对于打印机而言,分辨率表示每英寸的墨点数。例如,大多数激光打印机拥有300×600 dots/inch的分辨率。而对于显示器而言,分辨率通常表示横向或者纵向上的总像素数量,例如,1024×768像素。人们不可能告诉你打印机的一页纸上横向或者纵向的像素数量;人们也不可能告诉你在他们的显示器上,每英寸能包含多少像素!

归纳起来:

打印机:分辨率单位为“dots/inch”;

显示器:分辨率单位为“横向/纵向总像素数”

在下文的翻译中,“分辨率”一词将严格表示在 某一度量单位内的像素数,度量单位一般为英寸。(也就是 像素/英寸)“Pixel Size”或者“Pixel Dimension”(以像素为单位的尺寸,以像素为单位的大小,注意可不是一个像素的尺寸哦)来表示显示器横向、纵向的总像素数量。“metrical size”或者“metrical dimension”表示以英寸、毫米为单位的显示区域(如显示器的屏幕,打印机的纸张的可打印区域)的尺寸。使用“像素数量”/“度量尺寸”就得到了分辨率,如:1024像素/5英寸。

当今使用windows操作系统的显示器,横向长度要比纵向多出33%的,也就是横向、纵向比为1.33:1,或者更通俗的讲是4:3,该比例可以追溯到爱迪生发明电影,直到1953年出现宽屏投影出现为止,该比例一直是显示移动图像的标注比例。电视机也是4:3的横向、纵向比。

然而windows应用程序不该假定显示器总是拥有4:3的横纵比,做文字处理的人们更倾向于选择一款与真实纸张形状相似的显示器。除了4:3比例外,另外一种可选的比例是3:4。

如果一款设备的横向分辨率等于纵向分辨率,那么我们就称该设备为“正方像素”,在现如今,使用windows操作系统的大多数显示器均具备正方像素,但是并不是全都如此。所以你的应用程序不能总是假定设备具备正方像素。当windows刚刚面世的时候(那时候就不是正方像素),标准的视频适配卡(显卡)是ibm的Color Graphics Adapter(CGA),该显卡具备显示640×200像素的能力,EGA显卡:640×350像素;还有诸如720×348像素;所有的显卡均使用4:3纵横比的显示器,但是横向、纵向的像素数量之比并不是4:3。如,640×350,横纵比为:1.829。物理屏幕为4:3,但是像素比却不为4:3,那么就不是正方像素了。

对于使用windows操作系统的用户而言,确定显示器的像素尺寸很容易,如图:

你可能会会发现如下像素大小(Pixel dimension):

640×800;

800×600;

1024×768;

1280×1024;(这个不是4:3,是个例外)

1600×1200;

上述均是4:3,如何配以4:3的显示器,那么就构成了正方像素。

通过GetSystemMetrics函数(加上SM_CXSCREEN,SM_CYSCREEN参数)可以获取设备以像素为单位的大小(Pixel Dimension)。GetDeviceCaps函数(加上HORZRES,VERTRES)也同样可以完成上述功能。在上述函数中,分辨率代表pixel size(像素大小,像素数量)而不是pixels per metrical unit(像素每度量单位)。

上面论述的是设备的大小(device size),下面的内容非常容易引起混淆。

前两个设备的能力,HORZSIZE和VERTSIZE,在开发文档中被记录为:“物理屏幕的宽度,以毫米为单位;物理屏幕的高度,以毫米为单位”这种说法表面看起来是明确的,直截了当的,合情合理的,但是一旦你想想“这如何实现呢?”去发现上述说法是不现实的,不科学的。例如,给定显卡和显示器的类型,windows如何能知道显示器的物理尺寸呢?如果你拥有一台笔记本电脑(该电脑的显示驱动能够准确的知道屏幕的物理尺寸)连接了一台显示器到上面,甚至是连接了一台投影仪呢?windows如何知道屏幕大小??

在16位的windows(windows nt中也是一样)中,windows为屏幕的HORZSIZE、VERTSIZE使用标准的显示大小,从win95开始,HORZSIZE和VERTSIZE从HORZRES、VERTRES、LOGPIXELSX、LOGPIXELSY的值推导得出。下面详细论述。

当你从控制面板中选定了显示的pixel size,你也可以选择系统字体的大小。为何会有此选项呢?用于640×480显示的字体在1024×768或者更高的情况下会变得很小,不便于阅读。你想要更大的系统字体,在windows中有小字体、大字体。

在传统的印刷术中,一种字体的字符大小(size)用镑(point size)表示。一磅近似等于1/72英寸。在电脑印刷术中,字符大小近似1/72英寸。10磅的字体大概是10/72英寸。10磅的字体一般被认为是易于阅读的,小于10磅被认为不易于阅读。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值