2017-09-19 165 views
8

我的問題是,在施加到帆布Skia的平滑縮放(與concat方法)的文本顯示比例中的「突發」,非均勻地。在使用FreeType 2後端的Android平臺上,問題尤其明顯。非均勻文字縮放

我相信這是一般的文本縮放在Skia的工作方式 - 先申請的文字大小字體引擎,然後提取字形位,並以「剩女」矩陣來實現所需的最終尺寸改變它。但是不知怎麼的,最終的剩餘縮放並沒有被應用,這導致了在文本大小的整數值之間的過渡中出現這樣的突變。純Java/Android canvas同樣的事情似乎無懈可擊(文本順暢)。

我的問題是如何解決這種行爲?也許有一些構建配置標誌,我可以調整,也許SkPaint運行時間標誌?

Skia的修訂m59

回答

3

我不知道Skia的,但通常當我看到縮放文本這種行爲,那是因爲你是您鑄造比例浮動,以一個int。

float scale = someValue; 
int someOtherVar = scale; 
... some scaling math on someOtherVar... 
text.setScale(someOtherVar) 

這將導致所描述的行爲

決不將任何縮放變量爲INT的,直到最後一步。

+0

謝謝。這絕對不是這種情況,因爲畫布上的任何其他幾何圖形都能正確平滑地進行縮放。而且我不會在文字或其他東西上應用任何額外的比例。 – vganin