正文内容 评论(0)
iPhone 4提出“视网膜”概念、3.5寸屏幕上做到960×640分辨率/330PPI像素密度之后,这个世界就开始疯狂了,安卓手机已经做到了5.5寸2560×1440分辨率,像素密度超过500,平板机也纷纷配备2560×1600。
又是苹果,将“视网膜”的概念引入到MacBook系列之后,常年沉迷于1366×768的笔记本们也疯了,不约而同地开始拔高分辨率,3200×1800就有好几家,东芝甚至带来了4K级别的3840×2560,像素密度普遍达到了250PPI上下。桌面上,4K显示器也开始纷纷崭露头角。
但是慢着,在奔向高分辨率的同时,还有一个根本性问题:Windows操作系统的支持。
首先区分一下两个概念。
PPI(Pixel Per Inch):每英寸像素点数量,来源于数码相机的感光器(一般是CCD)。
DPI(Dot Per Inch):每英寸点数,来源于印刷、打印机,是打印精度指标。
二者原本并不完全相同,但是在屏幕、图像分辨率方面基本上就是一回事儿,计算方法也是相同的,只不过是Windows里还在习惯性地使用DPI。
Windows XP的首次尝试
让我们先看看这款在辅以十多年后已经歇菜的老系统,它也是Windows第一次开始支持更改DPI,自然毛病很多,比如说如果你把DPI设置得太高,很多程序就会出现显示问题。
其实,XP也提供了一个API,让开发者检查、缩放字体大小,但如果软件没有检查字体的DPI等级,那就麻烦了,比如说UI元素和文本框重叠,表格文字溢出,还曾经会有部分界面跑到屏幕之外看不到。
XP本身的缩放也不完美:窗口的最大/最小化、关闭按钮变的过大,标题栏文字特别粗放,系统通知区域图标满是锯齿和模糊。
Windows XP 96 DPI
Windows XP 120 DPI
Windows XP 144 DPI
不完美的DPI虚拟化
针对那些根本不关DPI的软件,Windows Vista引入了一项新技术“DPI Virtualization”(DPI虚拟化)。如果DPI不超过120,继续使用XP的缩放机制,超过之后就开启这个新模式。
其实说起来也很简单,所谓的DPI虚拟化,只不过是系统欺骗那些不支持高DPI的软件,让它们以为DPI其实是最基本的96(相当于1280×1024分辨率的17寸显示器),然后由系统离屏渲染软件界面,再放大到用户选择的DPI级别上。
这样解决了文字乱跑的问题,但很容易造成显示模糊,并不是完美的解决方法。
为此,微软引入了另外一个API SetProcessDpiAwareness,本身支持DPI缩放的软件可以用它告诉系统不要动我。
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...