vga*_*nin 8 c++ android freetype2 skia
我的问题是,在应用于Skia画布(使用concat方法)的平滑缩放期间,文本似乎在"spurts"中缩放,非均匀.这个问题在具有FreeType 2后端的Android平台上尤为明显.
我相信这是一般文本缩放在Skia中的工作方式 - 首先将文本大小应用于字体引擎,然后提取字形位图并使用"余数"矩阵对其进行转换以获得所需的最终大小.但不知何故,最终剩余的缩放未被应用,这导致在文本大小的整数值之间的过渡期间的这种喷射.纯Java/Android画布的相同之处似乎无可挑剔(文本可以顺利缩放).
我的问题是如何解决这种行为?也许有一些构建配置标志我可以调整,也许SkPaint运行时标志?
Skia修订版是m59.
我不了解 Skia,但通常当我看到缩放文本的这种行为时,这是因为您将缩放浮点数转换为 int。
float scale = someValue;
int someOtherVar = scale;
... some scaling math on someOtherVar...
text.setScale(someOtherVar)
Run Code Online (Sandbox Code Playgroud)
这将导致所描述的行为
在最后一步之前,切勿将任何缩放变量转换为 int。