2017-09-19 11 views
8

Skia canvas(concatメソッド)に適用されたスムーズなスケーリングの間に、テキストが "スプルース"で不均一に拡大縮小されるように見えます。この問題は、FreeType 2バックエンドを搭載したAndroidプラットフォームで特に顕著です。Skiaの不均一なテキストスケーリング(FreeType 2バックエンド)

これは一般的なテキストスケーリングがSkiaでどのように機能するかと思います。まず、フォントエンジンにテキストサイズを適用し、グリフビットマップを抽出し、それを「残りの」マトリックスで変形して最終サイズにします。しかし、何らかの形で最終的な残りのスケーリングは適用されず、テキストサイズの整数値間の遷移の間にこのような拍動が生じる。純粋なJava/Androidキャンバスと同じことが、完璧に機能するように見えます(テキストはスムーズにスケールされます)。

私の質問はどのように私はその動作を修正できますか?多分SkPaintランタイムフラグを微調整できる構成フラグがいくつかありますか?

Skia改訂版はm59です。

答えて

3

私はSkiaを知らないのですが、一般にスケーリングテキストでこの動作を見ると、スケーリングの浮動小数点をintにキャストしているためです。

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

これは非常に最後のステップまでのintのに任意のスケーリング変数を変換することはありません説明した動作

の原因となります。

+0

ありがとうございます。これは、キャンバス上の他のジオメトリが適切かつスムーズに拡大するため、ここでは間違いありません。そして、私はテキストや何かに追加のスケールを適用しません。 – vganin

関連する問題