您尚未登录。

#1 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 参考网上例程,做了一个用libfreetype解析微软雅黑msyh.ttf文件的demo » 2019-04-10 01:15:45

@晕哥,你这个demo有两个问题请教:
1、FT_Set_Pixel_Sizes(face, textHeight, 0); 这里应该是笔误哈,textHeight和0这两个参数位置要互换?
2、设置的像素高度为20px,但为什么字模点阵里面只有16行的高呢?
是不是freetype有特殊处理,只获取了字的完全高度?如果我想把转换为20px的点阵,有接口支持么?谢谢。

#2 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » @assert 分享的在littlevgl 调用freetye显示文字, 而不用通过字模软件生成 » 2019-04-10 00:01:34

yywyai 说:

static const uint8_t*
lv_font_get_bitmap_freetype(const struct _lv_font_struct *font, uint32_t unicode_letter)
{   
  return bitmap;
}

static int16_t
lv_font_get_width_freetype(const struct _lv_font_struct *font, uint32_t unicode_letter)
{
  /*Check the range*/
  if(unicode_letter < font->unicode_first || unicode_letter > font->unicode_last) return -1;
   
  FT_Error err  = FT_Load_Char(face, unicode_letter, FT_LOAD_RENDER);
  if (err == 0) {
    lv_font_freetype.bpp = 8;
    lv_font_freetype.bitmap_dx = face->glyph->bitmap_left;
    lv_font_freetype.bitmap_dy = lv_font_freetype.monospace - face->glyph->bitmap_top;
    lv_font_freetype.bitmap_row = face->glyph->bitmap.rows;
    bitmap = face->glyph->bitmap.buffer;
   
    return face->glyph->bitmap.width;
  }

  bitmap = NULL;
  return -1;
}

代码很简单的,但是修改了部分的LV代码

你好,感谢你的分享,请教下littlevgl修改的部分是?最近也在移植中文显示,借鉴下楼主的方法。谢谢。

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn