获取以给定字体呈现的字符串的像素表示

时间:2012-05-06 20:21:08

标签: c++ fonts pixels

是否有一个C ++库采用字符串和字体文件并使用该字体返回该字符串的像素表示?例如,我写了一个简短的PHP脚本,使用Courier绘制一个字母,然后拉出单个像素:

Screenshot of the letters abc http://so.mrozekma.com/letter-pixels.png

我可以将它转换为颜色强度代码数组并使用它,但这意味着我需要对每个我想要使用的字符进行硬编码,在每种字体中,我都会丢失连字符和智能字距调整等内容多个字符一起绘制。有没有一种方法在C ++中直接执行此操作,给定我想要使用的字体的TTF文件?我正在使用Linux,所以我不能依赖像GetGlyphOutline

这样的Windows API函数

1 个答案:

答案 0 :(得分:3)

  

是否有一个带有字符串和字体文件的C ++库

可以使用C库来做同样的事情。它被称为Freetype2。它相对容易使用。如果你想保持便携性和相对轻量级,使用Freetype2就是这样做的方法。在Linux系统上,它可能已经安装。

此外,跨平台GUI工具包通常提供某种“字体”类,可用于执行您想要的操作。例如,在Qt 4中你可以使用QFont在Qimage上绘制文本然后提取单个像素,加上操作系统(具有“font”概念的系统)通常也提供某种字体操作API。