当前位置:C++技术网 > 资讯 > 如何设置显示分辨率才会让屏幕显示最清楚

如何设置显示分辨率才会让屏幕显示最清楚

更新时间:2015-12-15 18:20:25浏览次数:1+次

    最近在研究GDI部分,今天上午就对屏幕分辨率和系统字体大小的问题看了两遍书,差不多研究的比较清楚了。我想很多人在学习Win32看的《Windows程序设计》这本书的时候都在这里困住了吧。
    首先我们需要理清一个概念,那就是分辨率的问题。我敢说很多人对电脑的分辨率总是搞不清楚,就连卖电脑的人也说不清楚。这可是我的心结呀!今天可算是了解的比较清楚了。
    我们知道,电脑显示的分辨率是可以设置的哦。在win7及以上版本系统中,右击然后可以设置屏幕的分辨率,你可以看到如下图所示的选项:
   
    我们的屏幕是物理设备,可以摸得着的。所以你也经常听到物理分辨率这个词。物理分辨率就是指显示屏所有显示颗粒的密度。下面是示意图,一个是高分辨率屏幕,一个是低分辨率屏幕。
   
    那么这里我们知道了,有两种分辨率咯。一个是系统可调的显示分辨率,一个是屏幕的物理分辨率哦。
    好的,我们来说说这两者的关系,然后就容易理解什么情况下,才是最清楚地显示画质。
    我们说的高清屏就和高物理分辨率的屏幕有关哈。我们说的是显示的粒度,就是能够显示信息的最小单位,就是图中的每一个小格子,就是最小的显示单位咯。那么用来衡量粒度密度的就是分辨率。这里就是我们要说的物理分辨率。很多时候,我们都是以屏幕的宽和高所占的最小显示单位的个数来说的,比如1920x1080,我的电脑就是这样的高清屏。说的是屏幕横向有1920个最小显示单元,竖向有1080个。实际上这个并不是真正意义上的分辨率,同样的15英寸的笔记本,屏幕的物理大小尺寸是固定的,那么如果你的横向和竖向的最小显示单元个数越多,那么自然在每个单位长度上的单元个数就越多,这样的屏幕可以显示的更加细腻。所以,我们一般以点/英寸来衡量分辨率。我们就将屏幕上的每一个最小显示单位看成一个点,这样就得到了一个分辨率,即横向分辨率和竖向分辨率,计算方法是横向或者竖向点数除以总长度,就得到了分辨率。这个分辨率就是屏幕真正的物理分辨率。
    所以,并不是屏幕大分辨率就高,也不是屏幕小分辨率就低,主要是看密度。所以,如果你的电脑屏幕比别人大,然而卖家说的1440x900的分辨率不见得比别人小电脑的1366x768的分辨率高哦。因为分辨率实际上是密度,只是卖家说的这样的表示方式比较方便而已。在编程中,一定要理顺这个概念,别搞错了。
    那么另外一个就是系统显示分辨率。这个可以在系统中设置的,一开始就列出了这个图片。你到底如何选择才能达到最佳效果呢?
    简单来说,最好的效果就是一一对应。也就是说,如果你的电脑屏幕分辨率是1440x900,那么显示分辨率设置为1440x900就是最佳的。高了低了都达不到最佳显示效果。你先知道这个概念,然后我再来解释为什么会这样。
    我们可以将教室里的桌子当做屏幕的物理分辨率,如果单位长度内能够摆放的桌子越多,自然教室的容量就越大了。那么学生就是显示分辨率了。也就是在这个教室里,横向坐多少个人,竖向坐多少人,这个是可以灵活安排的,就和在系统设置显示分辨率一样。所以最佳的体验就是一个桌子坐一个人。这就是屏幕物理分辨率和显示分辨率的一对一最清晰显示关系了。
    那么如果显示分辨率设置高了,那么也就是学生数多了,本来一排只有100个桌子,硬坐上去了200个人,自然就是两个人挤一张桌子。这样老师在讲台一看,尼玛,这两个人虽然都没有超出一张桌子的大小范围,但是已经不好辨认是谁了。所以,老师决定将其中一位赶走,这样还是保持一个桌子坐一个人,结果原本有200个人就删掉了100人,自然被删掉的人身上都带有一些独特的信息,比如穿不同的衣服显示的颜色等都比较有特点的,最后被删掉后就没有了,实际上就是信息丢失了。我们的桌子总是有限的,挤多了老师也只能让你一个桌子坐一个人。因为能够显示的就是显示器的最小显示单位,一个单位只能显示一个信息,多了就要删掉。如此一来,就让一幅高清图片的很多细节丢失了,实际上显示的不是高清的。
    如果把显示分辨率设置的低于物理分辨率,那么也就表示桌子多了,人少了。但是老师又要每一个桌子都有人占着,不然就不上课。好了,现在100个桌子只有50个人,那么要达到老师的要求,就一个人占用两个桌子,最简单的就是克隆一个人放在另一张桌子上,就算是搞了一个模型占位了吧。这样会导致信息重复也不能让人清晰看到整个画面咯。这就是像把一个小位图图像放大很多倍看的很模糊差不多。
    实际上,这个和要显示的来源内容有关。比如一个不清晰的图片,不管你怎么样调都不清晰。这个就和图像本身有关。图像也有分辨率。也就是图像自己是按照什么样的分辨率存的。如果图像的宽高只有50x50,硬要全屏显示在100x100屏幕上,这样就是将图片放大了。
    那么如果达到最清晰的就是,让图片的大小放在和图片一样大的显示缓存中存放,而不要做放大缩小。显示分辨率有1440x900,图片只有100x100,那就将图片数据放在显示卡缓存1440x900的数据缓存中的其中一个100x100位置,然后给显示器显示,显示器屏幕物理分辨率也是1440x900,这样从图片到显示分辨率到屏幕物理分辨率都是1:1的关系,这样最后看到的图片就是最原始的样子。如果图片本身是高清的,自然看到的也是高清的。如果任何一个环节都不1:1对应,最后看到的始终都不是最高清的原始图片哦。