Mac系统HiDPI问题

我用mac就是因为人家好看,还好用。再不济我会选择Linux,因为人家好用而且也不丑。

** 重要的事情说3遍,连接Macbook和显示器的线缆一定是DP口的。**
** 重要的事情说3遍,连接Macbook和显示器的线缆一定是DP口的。**
** 重要的事情说3遍,连接Macbook和显示器的线缆一定是DP口的。**

0. 我们看屏幕的时候到底看到的是什么?

RGB颜色模型
RGB颜色模型

先给大家普及下基础的成像技术。所有的电子显示器(二极管或是液晶)都是通过色彩的混合来完成图像的显示,回想下我们小学学习的三原色知识,通过RGB能够混合出大部分的色彩。但是工业上出了使用RGB之外,还有pRGB,YCbCr等色彩表示(还有其他的色彩表示和混合方式,不深究)。我们都知道8个比特位能表示256种可能,这也是大部分RGB显示器所能表示的范围,一共3个8位的比特位,能够表示的就是![](http://www.forkosh.com/mathtex.cgi? \Large 2^{24}=16 777 216)次方,也就是1600万色,这也就是大多数广告中提到的1600万色的来源,当然现在很多现实器都支持10bit广色域,关于色彩问题这可是有很深的历史和文化渊源的,大家耳熟能详的有Adobe公司的颜色模型,苹果公司的颜色模型,还有一些其他我也不知道的专业制图公司的颜色模型,反正这东西涉及到色彩心理学的知识,我不懂

对于一般人每天接触最多的电子屏幕就是手机的点子屏幕啦,从最初的蓝屏到今天的OLED,从几百像素到2k屏幕。手机上的屏幕是由一个个发光的点组成的点阵,最初碍于技术每个“灯泡”做的都很大,灯泡之间的间隔也很大,所以会有“像素感”,就想下面的Nokia的蓝屏手机。

大手牵小手

随着技术的进步,相同大小的屏幕能够放进去更多的”灯泡“,分辨率也在逐步提升,以至于我们人眼不再分辨出”颗粒感“,也就是屏幕的分辨率和你视网膜的分辨率一样大,或是屏幕的分辨率更大的时候我们得到了一个”视网膜“屏幕。

当我们有了一个大的分辨率屏幕的时候,我们想要显示的内容的分辨率是一定的时候,显示内容在屏幕上占有的实际面积就越来愈小。我们看着当然不爽,最简单的解决办法就是用4个发光的灯泡来显示同样的一个色彩点,对硬件设备的分辨率进行下采样,这样在屏幕上显示的面积就是原来的4倍大小,但是并没有降低视觉上的分辨率。

1. 什么是HiDPI技术?

HiDPI (High Dots Per Inch) displays, also known by Apple's "Retina Display" marketing name, are screens with a high resolution in a relatively small format. They are mostly found in high-end laptops and monitors.
Not all software behaves well in high-resolution mode yet. Here are listed most common tweaks which make work on a HiDPI screen more pleasant.

简单来说就是在硬件设备上面使用多个像素点位置来合成一个我们看到的像素。这需要的是软件的支持和一款大分辨率屏幕。


乔帮主在介绍retina屏幕

上么的图显示的是乔布斯在介绍“Retina”技术,左边是一般的屏幕的抗锯齿算法,由于屏幕实际分辨率的限制,造成了窗口或字体会有一种毛刺的效果。而右边的则是macbook上应用的视网膜技术,由于分辨率提升了一倍,所以看着会更顺滑,所以在mac上看文档,打字真的是一种享受。


高分辨率(上)和低分辩率(下)实际效果

我们可以简单的将右边的技术理解为HiDPI技术,如果我们按照屏幕实际的分辨率来调整桌面的话,你会发现系统的字体会很小,并且窗口和字体会出现模糊毛边的效果,如果单纯的降低分辨率的话,字体倒是变大了,但是模糊和毛边的效果更加严重了,这就是单纯降低分辨率而不做抗锯齿操作会放大锯齿的后果。

2.实际操作

先贴下我的硬件信息:

笔记本:Macbook pro 2012(975,带一块低端的1G独显)
显示器:Dell U2417H+Dell U2518DR
       实际分辨率分别是1920 x 1080和2560 x 1440。
系统版本:macOS Sierra (ver 10.12.5)

我一下午重启了无数次电脑都没有成功的原因就是用了一条HDMI的线缆。最后换了线缆成功的那一刻,内心真的是。


去你妈的HDMI

今天心心念的屏幕到了,连午饭都没吃就开始将Dell U2417H替换下来,装上新的Dell U2518DR,为什么选择这两款屏幕。因为这两款屏幕真的是很惊艳,四个边框真的很窄。大家可以找找网上的评测,其中2417是2414的升级版,2518是2515的升级版。本来想直接上一款4k的屏幕,后来担心我那岁数大的macbook带不动就万事休矣。最后选择了一款1080和一款2k的先凑合用着。当然上面的都是废话,下面直接切入正题:怎么在2k屏幕上面显示成retina内建屏幕的效果。

mac的retina屏幕自带缩放模式,在win下用户遇到的问题是当屏幕的分辨率越高的时候,系统字体会比较小,可以使用缩放来完成字体的放大(比如放大到原来的150%)。但是当mac外接屏幕的时候,他的缩放就显得有点鸡肋了,当然如果你外接的是4k或是5K的屏幕的时候,屏幕本事自带的是HiDPI就能解决字体过小、模糊不平滑问题。这个已经向好友刚子求证过了。只记住了他对高分辨率屏幕的点评:原来括号是这样子的啊。

之前用1080分辨率(23.8寸)屏幕的时候已经能感觉出很大的颗粒感了,原因是习惯了mac自己的屏幕,就像你看惯了1080P的电影再看720p的电影会很难受,就像你听惯了无损的歌曲,再听320k的歌曲的时候耳朵受不了一个样子。

感谢大家看到这里还在看,这篇非技术贴。下面是干干干货。


方案一(未测试):
这种方法适宜程序员类,或是你熟悉Mac的操作。

  • 管理员权限运行下方的命令开启本机的HiPDI选项
    sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true

  • ioreg -l | grep "DisplayVendorID"
    ioreg -l | grep "DisplayProductID"
    上面的两个命令会返回两个带10进制数字的结果,记下来,转换成16进制数字,其中第一个是用来命名文件夹的,第二个是用来命名文件的。

  • 在任意位置(桌面上比较好)建立一个文件夹,并在文件夹中命名一个文件,其中文件夹的名字为DisplayVendorID-XXX,文件的名字为DisplayProductID-XXX,XXX则是前面转换成16进制的两个数字。

  • 文件的内容是一个plist格式的文件,内容如下,可以使用xcode编辑工具编辑。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>DisplayProductID</key>
        <integer>10496</integer>
        <key>DisplayVendorID</key>
        <integer>8547</integer>
        <key>scale-resolutions</key>
        <array>
                <data>
                AAAKAAAABkAAAAABACAAAA==
                </data>
                <data>
                AAAUAAAADIAAAAABACAAAA==
                </data>
                <data>
                AAAKAAAABDgAAAABACAAAA==
                </data>
                <data>
                AAAUAAAACHAAAAABACAAAA==
                </data>
                <data>
                AAAHgAAABDgAAAABACAAAA==
                </data>
                <data>
                AAAPAAAACHAAAAABACAAAA==
                </data>
                <data>
                AAAGkAAABBoAAAABACAAAA==
                </data>
                <data>
                AAANIAAACDQAAAABACAAAA==
                </data>
                <data>
                AAAGQAAAA4QAAAABACAAAA==
                </data>
                <data>
                AAAMgAAABwgAAAABACAAAA==
                </data>
                <data>
                AAAFoAAAA4QAAAABACAAAA==
                </data>
                <data>
                AAALQAAABwgAAAABACAAAA==
                </data>
                <data>
                AAAINAAAA4QAAAABACAAAA==
                </data>
                <data>
                AAAQaAAABwgAAAABACAAAA==
                </data>
        </array>
</dict>
</plist>

如果我想使用AxB的分辨率,那么我需要同时添加一个AxB和2Ax2B的分辨率,一个原始分辨率和一个加倍的分辨率。

  • 最后把文件夹直接拷贝到/System/Library/Displays/Contents/Resources/Overrides/

方案二(已经测试):
使用软件SwitchResX,不过最新的系统会有点问题,请参考这篇文章解决解决方案

方案三(已经测试):
按照这个Github中的步骤利用脚本为本机开启HiDPI选项。Github地址

方案四(未测试):
这个Github的项目貌似更加靠谱。Github地址

参考

  1. Wiki-HiDPI
  2. 有关retina和HiDPI那点事
  3. 分不清HiDPI和Retina显示器?─ 认识4K时代的像素密度
  4. How to Enable HiDPI Mode in Mac OS X
  5. macOS-10-12-Sierra开启HiDPI
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容