Heim > php教程 > php手册 > Hauptteil

矢量字库的剪裁

WBOY
Freigeben: 2016-06-21 08:48:53
Original
1409 Leute haben es durchsucht

    通常一个矢量汉字字库接近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();  
Nach dem Login kopieren

这里要特别注意的是 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()   
Nach dem Login kopieren

 

 

 

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

 

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

 

 

 

 

 

 



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!