移动端开发 解决特殊字体

我看一般的中文字体文件包大小都是2-3m的
有没有什么在线字体压缩工具呢 把文字压缩到几kb之类的

阅读 5.6k
5 个回答

一句话结论: 想把完整的中文字体库压到几kb是不可能的,不过可以考虑购买在线字库生成工具。

字体文件里都存了什么信息呢?首先至少要有每个字的编码和其对应的矢量字型;另外有的字体会保存特定字号下的特别矢量字型,因为正常大小看着不错的字型放到特大或者缩到特小就会不美观甚至无法辨认;还有的字体会把部分甚至全部字符的粗体和斜体矢量字型单独设计保存。

中文字的笔划多,保存矢量字型时需要记录的点和方向也多;而且中文的字特别多,英文大小写加起来才52个字母,算上数字、符号什么的也就一百多,加上法文、徳文、西班牙文、意大利文等众多欧洲语言字母也不到1000个。然而中文光简体常用字GB2312字库就6000多个字符,GBK直接18000多个字符,现在Unicode中日韩字符区域已经有超过25000个字符。

所以不难想像,单字笔划多,字符数量也极多的字体库,怎么压缩都小不了啊。HTML5一大创新是加入了Web Font的支持,网站开发人员可以不必局限于使用用户操作系统已经安装的字体,然而这对中文用户来说,就只能呵呵然后走开——谁原意在打开一个网站的时候先下载一个几兆到十几兆大小的字体库呢?即使愿意花这份流量也等不起这个时间呀。

不过问题也不是完全无解,聪明的中国人发现导致中文字体文件特大的主要原因还是字符多。如果有一个工具,能根据你当前网页上实际用到中文字符,从完整的字体库中抽取一个子集出来,那就可以压缩得很小。一般一篇新闻稿里会用到的不重复的中文字符也就几百个,如果就只用这几百个字符做成一个字体文件,肯定可以压缩到几KB。

推荐justfont的项目可以考虑,它们能在线把你需要一段文字生成一张SVG图片,这样你就可以取得部分字符的完整矢量字型。skyfont比justfont的字体库要多得多,不过毕竟不是生成字体文件,所以需要你手工干的活比较多。

www.iconfont.cn去这个网站里面有个在线的工具 你可以把你用到的字变成svg上传后在线生成字体文件 用CSS来使用就可以了

我记得有人扒小米的技术,小米好像只把用到的几个字打包到项目里

腾讯出品的font-spider,或者百度的font-min,这种问题务实回答就可以了。题主自行去查看使用方式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏