首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Skia中的非均匀文本缩放(FreeType 2后端)

Skia中的非均匀文本缩放(FreeType 2后端)
EN

Stack Overflow用户
提问于 2017-09-19 18:41:56
回答 2查看 283关注 0票数 9

我的问题是,在将平滑缩放应用于Skia canvas (使用concat方法)期间,文本显示为“喷发”,不均匀地缩放。这个问题在使用FreeType 2后端的安卓平台上尤为明显。

我相信这就是Skia中一般文本缩放的工作原理-首先将文本大小应用于字体引擎,然后提取字形位图,并使用“余数”矩阵对其进行转换,以获得所需的最终大小。但不知何故,最终的剩余缩放没有被应用,这导致在文本大小的整数值之间的转换中出现这种突增。对于纯Java/Android画布来说,同样的事情似乎工作得无可挑剔(文本可以平滑地缩放)。

我的问题是,我如何才能纠正这种行为?也许有一些构建配置标志可以调整,也许是SkPaint运行时标志?

Skia的修订版是m59

EN

回答 2

Stack Overflow用户

发布于 2017-09-25 03:29:43

我不知道Skia,但通常当我在缩放文本时看到这种行为时,这是因为您将缩放浮点数转换为int。

代码语言:javascript
复制
float scale = someValue;
int someOtherVar = scale;
... some scaling math on someOtherVar...
text.setScale(someOtherVar)

这将导致所描述的行为

在最后一步之前,不要将任何缩放变量转换为int。

票数 2
EN

Stack Overflow用户

发布于 2020-04-30 11:59:59

绘制文本时,请尝试设置Paint.isLinearText。这会导致Skia在应用转换之前将文本呈现到路径。我的测试表明,这会导致伸缩变得平滑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46298359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档