2010-04-30 59 views
0

簡單的問題 - 如何在Android/iPhone設備上實現文本縮放?他們是否預先計算經常使用的字體位圖並隨着尺度的變化而替換文本?或者他們從字體文件中提取輪廓並將文本呈現爲矢量圖形?Android/iPhone設備如何實現文字縮放?

回答

1

文本渲染是一個相當複雜的主題,所以這裏的任何答案都只會掩蓋很多東西。字體通常以矢量格式存儲,而不是位圖。系統通過計算每個字母的度量來佈局文本,並創建一個矢量形狀,並將其呈現爲屏幕上顯示的位圖。由於抗鋸齒和子像素渲染的作用方式,系統不太可能將單個字體緩存爲位圖。但是在某些時候,所有的矢量圖都被轉換成位圖,因爲典型的計算機顯示是由像素組成的。

+0

所以,我知道大部分 - 我可能應該在我的問題中更詳細。我上次檢查時,當你放大iPhone時,文字模糊不清,直到你停止縮放。我猜測會發生什麼是原始位圖縮放,直到縮放停止,在這一點上一個新的適當大小的位圖計算。 在Android 2.0上,它可以進行實時縮放。沒有模糊。這就是我想知道的 - 如何?如果它在縮放時正在創建新的位圖,我會非常驚訝,因爲這是一項非常昂貴的操作。 – rcoyner 2010-04-30 09:28:07

+0

「由於抗鋸齒和子像素渲染的原理,系統不太可能將單個字體緩存爲位圖。」事實上,據我所知(我是兩個OS - Symbian和RIM OS的文本渲染系統的作者),系統總是緩存單個字母的位圖。雖然字形柵格化速度很快,但緩存速度不夠快。 – 2012-12-24 20:03:18