首页 > php教程 > php手册 > 正文

矢量字库的剪裁

WBOY
发布: 2016-06-21 08:48:53
原创
1409 人浏览过

    通常一个矢量汉字字库接近10MB, 太大,而我可能只需要显示某几个特定的汉字而已, 那怎么提取或者剪裁现成的字库呢?

 

我试过一个国人写的“字库剪裁工具”, 要点好几次鼠标,只支持系统字库,不甚方便。我也试图在font creator 4.1 找有没有类似的功能,可惜没找到。

 

下面介绍一种方法,使用font forge,用了之后才发现非常地强大,原来Unix传承下来的都是内敛的。

 

 

 

#fontforge.exe  -script font-select.pe simyou.ttf youyuan_asc.ttf  
Open($1)  
############  
   
##ascii  
SelectMore(0u0020, 0u0080);  
  
  
############  
SelectInvert();  
DetachAndRemoveGlyphs();  
Generate($2, "", 0x14)  
Close();  
登录后复制

这里要特别注意的是 SelectMore(a,b,c,d) 表示选择[a,b], [c,d] 范围;SelectMore(a) 表示选择单个a;开始我弄错了走些弯路。

如果要处理一段中文, 可以先用iconv 转换为 ucs-2le, 再作为练习题8)转为0uxxxx 这样的输出。

另外,如果我们想把中文字库的英文部分替换调,可以这样搞:

# font merge   
# e.g. replace font file $1 with good english font $2:  
# fontforge.exe  -script font-merge.pe simyou.ttf SegoeWP.ttf merged.ttf  
  
Open($1)  
SelectAll()  
ScaleToEm(1024)  
Generate("temp.ttf", "", 0x14)  
Close()  
  
  
Open($2)  
SelectAll()  
ScaleToEm(1024)  
   
MergeFonts("temp.ttf")  
SetFontNames("FontName", "Font Family", "Full Name", "Style", "")  
Generate($3, "", 0x14)  
Close()   
登录后复制

 

 

 

       最后, 更高级的玩法是用fontforge 打开sfd文件: http://levien.com/type/myfonts/Inconsolata.sfd 

 

Inconsolata 可是程序员用的十大字体之一喔。

 

 

 

 

 

 



相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!