假设我在 RAM 中制作了一个二维数组。是否有任何库可以轻松地直接绘制到我的数组(而不是将文本绘制到屏幕或 VRAM 中的渲染目标)?
即使我至少可以使用指定的字体获取单个字符的像素数据也很好。
虽然我是 C++ 的新手,但它需要简单......
如果指定的字体不使用/存储位图,那么它必须为我转换它。
最佳答案
FreeType是一个基于类 BSD 许可的跨平台开源库,呈现十几种字体类型(包括 TrueType 和 OpenType),并适用于所有主要操作系统。
作为替代方案,您可以使用特定于操作系统的 API 将文本呈现到内存位图中(可以像数组一样直接访问)。渲染到屏幕和渲染到内存位图没有区别,您只需要创建一个离屏位图图像并将其选为目标。在 Windows 中,使用 CreateDIBSection
函数;在 OS X 中,创建 NSBitmapImageRep
对象或使用 CGBitmapContextCreate
函数(在 iOS 中也可用)。这在所有这些任务中都是一项非常简单的任务(不到 100 行代码),创建 2-4 个特定于操作系统的文件可能比采用 FreeType 更容易(特别是如果您已经知道这些 API)。
关于c++ - 从带字体的字符串中获取像素数据的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15966559/