如何在 CALayer 中绘制简单的位图文本?

Posted

技术标签:

【中文标题】如何在 CALayer 中绘制简单的位图文本?【英文标题】:How to draw simple bitmap text in a CALayer? 【发布时间】:2017-03-29 06:24:36 【问题描述】:

我想使用包含大约 18 个固定宽度(9x15,1x 和视网膜尺寸)字符的类似精灵表的图像将大量字符串绘制到 CALayer。我不需要任何颜色的改变,从系统字体转换,甚至改变大小。只是简单的位图字体渲染。

这是我正在尝试使用的精灵表(1x 大小):

Image link

我尝试过使用 CoreText 框架设置器和 NSAttributedString.draw,但是对于我需要更新每个框架的文本量以及我想要实现的外观来说,它们太慢而且太花哨了。

我该怎么做呢?

【问题讨论】:

【参考方案1】:

@ToxicCaves64,也许你可以制作自己的真字体(.ttf)文件,并将你的十八个固定宽度字符放入你的字体文件中,然后你可以将你的字符渲染为文本而不是图像

【讨论】:

使用位图渲染的全部意义在于,像 Core Text 这样的方法来渲染 ttfs 对于我需要渲染的大量文本来说太慢了,所以不能选择 ttf。这应该很容易,因为位图字体自 70 年代以来就已经存在并以快速的速度呈现。

以上是关于如何在 CALayer 中绘制简单的位图文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CALayer 上绘制具有原生外观的状态项背景

iOS- CALayer绘图,如何绘制渐变效果图

使用 Metal 绘制位图

在 iOS 和 iPhone 上,如何绘制位图并在 drawRect 中显示?

如何在位图上绘制粗体文本?

如何使用 GDI 将 RGB 位图绘制到窗口?