• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

矢量字库的剪裁_php

php 搞代码 7年前 (2018-06-21) 86次浏览 已收录 0个评论

    通常一个矢量汉字字库接近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,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:矢量字库的剪裁_php
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址