c++ - 从带字体的字符串中获取像素数据的简单方法

标签 c++ fonts

假设我在 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/

相关文章:

java字体无法正常显示

c# - 使用 Font Awesome 更改 WPF 中的字体图标

ios - Xcode Swift 中不同字体大小的 UILabel 居中文本对齐问题

c++:为什么它总是先做最后一个参数?

c++ - 在 C++ 中干净地复制基类或子类的实例?

c++ - set 是否有可能将 std::vector 作为存储其元素的底层存储?

c++ - 运算符重载

jquery - 使用 jQuery 根据字体系列更改正文字体大小

html - 仅在 Firefox 中 Font Squirrel 生成的字体有额外的行空间问题

c++ - 如何使用 OpenCV 使用最小值和最大值调整亮度和对比度