在Haskell中栅格化TrueType字体

时间:2014-06-12 14:30:28

标签: haskell bitmap rendering true-type-fonts rasterizing

我想构建一个函数,该函数接受给定的Unicode字符和给定的TrueType字体,并将相应的字形栅格化为二维1位/像素位图。

类似的东西:

rasterize :: Font -> Char -> Size -> Bitmap
rasterize font char size = ...

要求

rasterize函数应该:

  • 生成最大宽度w和高度h的位图,以便w <= sizeh <= size
  • 栅格化字形,使其完全填充位图,不留任何填充。

Bitmap类型应支持以下操作(或类似操作):

width  :: Bitmap -> Int
height :: Bitmap -> Int
bit    :: Bitmap -> (Int, Int) -> Bool

bit b (x, y)评估为True的情况,如果(且仅限于)设置索引位置b的位图(x, y)内的位。

问题

是否有任何已经可以执行此操作的Haskell库或类似的东西?

实施例

评估表达式rasterize fontUtopiaStandard 'o' 64会产生位图b,如果呈现的内容与下图相似(以800%比例查看,带网格),其中(width b, height b) = (60, 64):< / p>

enter image description here

注释

  1. 我已经尝试过使用stb-truetype package了,但是任何尝试获取像素数据的尝试都会导致分段错误,即使在使用类似于版本的GHC(6.12)进行编译时也是如此。包装已经过测试(如果有兴趣的话,我可以提供有关segfaulting代码的更多细节。)
  2. 我知道存在在OpenGL上下文中呈现TrueType字体的库,但我无法看到如何访问像素数据。

0 个答案:

没有答案