Ungleichmäßige Textskalierung in Skia (FreeType 2-Backend)

8

Mein Problem ist, dass während der glatten Skalierung, die auf Skia-Canvas angewendet wird (mit concat method), der Text in "spurts" ungleichmäßig skaliert wird. Das Problem tritt besonders auf Android-Plattformen mit FreeType 2-Back-End auf.

Ich glaube, so funktioniert die allgemeine Textskalierung in Skia - zuerst Textgröße auf Font-Engine anwenden, dann Glyph-Bitmap extrahieren und mit "Rest" -Matrix transformieren, um die gewünschte Endgröße zu erreichen. Aber irgendwie wird die letzte verbleibende Skalierung nicht angewendet, was zu solchen Sprüngen beim Übergang zwischen ganzzahligen Werten der Textgröße führt. Das gleiche mit reinem Java / Android-Canvas scheint tadellos zu funktionieren (Text skaliert reibungslos).

Meine Frage ist, wie kann ich dieses Verhalten beheben? Vielleicht gibt es ein Build-Konfigurations-Flag, das ich optimieren könnte, vielleicht SkPaint runtime flag?

Skia Revision ist m59 .

    
vganin 19.09.2017, 10:41
quelle

1 Antwort

3

Ich kenne Skia nicht, aber im Allgemeinen, wenn ich dieses Verhalten bei der Skalierung von Text sehe, liegt das daran, dass du deinen Skalierungs-Float auf einen Int skalierst.

%Vor%

Dies wird das beschriebene Verhalten verursachen

Konvertieren Sie keine Skalierungsvariablen bis zum allerletzten Schritt in int.

    
NapkinTrout 24.09.2017 19:29
quelle

Tags und Links