fontForge开源字体定制工具

        最近在工作中有一个小插曲。web后台使用的文字渲染插件无法对字体加粗,不巧的是,这个插件已经停止更新了,因此这个bug无法解决, 所以让我用qt实现这个插件的功能(没错,就是为了一个加粗的功能重写整个插件,还好这个插件算是小程序,哈哈)

       在我发现QPainter、QImage、QPen这些好用的东西,并且看到QFont自带setBold接口,我确定QT自带的功能实现这个小程序简直是小case,然而,在我花费足够多的时间把整个插件的功能都写好之后,我发现属于需求内的幼圆字体在Linux下无法加粗,其他字体加粗没问题,但是相同的字体文件simyou.ttf在windows下用相同的代码运行却可以加粗,我当时直接傻眼了,难道这个时候要转战其他实现方式?不不不不,要坚信方法总比问题多!这个时候救星——fontForge 出现了!dang dang dang地出现了!还是开源的! 我下载了一个windows版本的fontForge,对simyou.ttf进行了改写——简单地做了加粗操作,保存为YouYuanBOLD.ttf,在程序中要用simyou.ttf粗体的话,直接外部加载YouYuanBOLD.ttf即可!感谢开源软件,让程序员世界变得这么美好!

这里附上两条:

【1】qt加载外部字体的方法;

(1)在资源文件中添加字体文件,如YouYuanBOLD.ttf   

     

(2) 代码部分:   

QFont font;
int nFontID = QFontDatabase::addApplicationFont(":/YouYuanBOLD.ttf");

 if(nFontID != 1)

 {   QStringList qstrList(QFontDatabase::applicationFontFamilies(fontID));

     if(strList.count() > 0)  

    {

      font = strList.at(0);

    }

 }
else
{
   font.setFamily("宋体");
}

【2】fontForge使用教程

 http://designwithfontforge.com/zh-CN/What_Is_a_Font.html

fontForge官网

https://fontforge.org/en-US/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值