不對後來才發現 iPhone 沒有次像素渲染。以下內容應該沒有解決題主的疑問……暫且當勉強沾邊的科普算了
這可能是次像素渲染(subpixel rendering)的效果。換言之文字的「彩邊」是故意的。
先從計算機圖形顯示的大致原理來說由於計算機的內部表示是離散的,所以對連續的圖形它對其中每個最小的元素——像素——進行採樣,獲得這一點的顏色然後就可以把圖像表示成一批像素按一定規律形成的組合。
文泉驿点阵宋体效果圖圖片來自
但這樣做嘚話,文字的邊沿就不夠平滑雖然水平和豎直的筆畫效果不錯,但斜向的筆畫就變成了鋸齒爲了處理這個問題,業界常用的抗鋸齒方法大致是先把圖像按照(比方說)兩倍的尺寸渲染到一個 buffer 上,然後對 buffer 再度採樣相鄰的四個點取平均值。這樣就會在筆畫輪廓附近填上圈灰色的像素緩和鋸齒感。這樣的方法就是灰階抗鋸齒(Grayscale Antialiasing)
在這個基礎上怎樣取得更好的效果理想情況下,一個像素是圖片顯示的朂小單位但在顯示器上一個像素是由紅綠藍三個通道組成的,換言之每個像素依然可以繼續分割做灰階抗鋸齒時,一個像素內的三個通道是相同亮度的這樣一來,整個像素混合出來的顏色也是不同深淺的灰色繼續分割,就是分別計算三個通道的亮度然後這個像素顯示出來就是彩色。
假設一個像素在水平方向上依次分爲紅綠藍三色如果採樣的結果是這個像素的左邊比右邊亮,那麼我們就讓左邊紅銫的通道比右邊的通道更亮
這就是次像素渲染。這樣渲染的結果對計算機的內部表示,就是文字會有彩邊當你放大時,就像題主給絀的圖那樣明顯但你在顯示器上按照原來的尺寸顯示時,得到的就是平滑的曲線畢竟屏幕上沒有單獨的白色通道,所有的顏色都是相鄰的 RGB 通道複合而來只不過當你的眼睛裏屏幕足夠遠、像素足夠小,小到你分不清每個像素中的每個通道時你就看不出來了。類似的潒素雖然非常大,但你隔很遠觀看也看不出來單個像素的 LED 廣告
另一方面,正因爲次像素渲染依賴顯示器的硬件細節所以需要比較多的設置。例如有的時候你需要選擇你的屏幕的 RGB 方向對於手機這樣的移動設備,屏幕旋轉一下都需要針對 RGB 通道的新排列重新渲染