FontForge:免费字库设计软件 附使用教程
引用:http://www.sucaijishi.com/2018/articles_0817/259.html
如何设计一套自己的字库?今天分享一个开源的字库设计软件FontForge,
官方下载:http://fontforge.github.io/en-US/
选择语言
此语言非软件操作界面的语言而单纯是安装界面的语言,软件本身不提供中文选项但是有日语,无所谓什么语言,跟着下面步骤点击"ok"按钮继续,如下图所示
安装过程
同意XXxxxxxxx之类的
选择安装位置
创建桌面快捷图标勾选上
点击安装
安装完成
英文界面修改成中文
FontForge 汉化教程:http://www.sucaijishi.com/2018/articles_0815/258.html
接下来打开软件,立马变亲切有木有
了解字体文件
不知道是什么原因,只能显示上图所示几个文件夹,不过没关系也可以用,只是把文件存桌面而已,我们打开一个我们熟悉的字体文件看看.(后经实践证明在下面输入框中直接输入盘符+冒号可直接访问该盘符,例如:(d:)试试吧)
确定(如果该字形有多种粗细)会弹窗让你选要打开哪种,可能会有警告窗口弹窗直接无视,打开后的中文界面
我们先看一下字体信息,菜单“基础”-“字体信息”
主要看两项信息,其余的大家自行摸索;
在“PS字体名称”一栏中,我们可以看到字体名称(我们自己设计的字体就是在这里命名的),
在“TTF名称”一栏中我们可以看到,字体版权信息(大方正很威武)在我们自己设计的字体文件中可自行填写;
回到主界面,双击界面中字符,弹出的窗口是单个字符的编辑窗口,是不是很熟悉的路径,我们其实在这个软件里面就可以创建,挪动,调整,删除节点等操作,设计字符需要在这个窗口中保存退出,其他功能有兴趣的同学可自行摸索,
关于编码
设计字体文件涉及到使用哪种字符编码来做,为什么有ANSI编码,扩展ANSI编码,GB2312编码,GBK和GB18030编码这么多各种各样的形式呢,因为每个对应的编码方式对应的对象不同,我大天朝常用字就分好多个不同的大陆:常用字2,500字;台湾:常用字4,808字;香港:常用字4,759字;加上什么繁体字,蒙文,其他国家的文字这些种种,总之是因为字符数量不同造成不同的编码方式;一个叫 ISO (国际标谁化组织)的国际组织解决了这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号的编码!他们打算叫它 UCS, 俗称 UNICODE 。( Universal Multiple-Octet Coded Character Set )什么意思呢,就是说不用纠结于用什么编码了,
直接用ISO-10646-1(统一码,基础页)
关于字体文件制作
据了解,1994年出版的《中华字海》收入了87019个汉字,其中2500个常用字、1000个次常用字,总共只有3500字是我们的常用字,微软雅黑这种字体属于正文字体共收录了20902个字符,如果你想做一套正文字体,那可能需要做到这个数,如果是做一套常用汉字字库,那最起码要做到3500个常用字,类似这种字库有造字工房,门主的庞门正道标题体等等。那哪些字符是要设计的呢,其实我们常用到的都是要设计的,中文英文26个大小写字母、数字和各种常用符号。
对于矢量软件熟悉的同学可以直接用AI等软件将制作好的对应的单个字符存成SVG格式后导入到字符编辑窗口中(建议以字符编辑窗口中的尺寸为基础在AI软件中设计,这样的话就只需要摆放好位置就行了,不用在调整大小之类的操作了,因为FontForge里面的这些调节操作很繁琐不方便)需要注意的是软件默认单个字符宽度高度是800x1000,这个比例就是你要最终字体的比例,如果你想设计一个矮粗的,或者瘦长的字形,需要所有字符都统一修改宽度,将界面中字符都选中(可选中一个后Ctrl+A)可以使用“尺寸”菜单下的“设置宽度”命令修改,在弹出后的对话框中输入数字即可。
生成方法(1)
通过新建文件
可以看到界面中有各种各样对应的字符,打开是空白的,我们设计一套中文字体也应该包括英文字符和对应的标点符号等,数字从“0”开始,英文字符从“A”开始,中文字符从“一”开始,我们在软件“查看”菜单中使用“转到”命令,定位到相关字符处,总之你认识的都要设计一遍。
生成方法(2)
上面方法说到,每个我们认识的都要设计,我们常用字就3500个,我怎么去分辨具体哪些要做呢?
第二种方法就是通过修改已有字体文件,上面说到了,已有的字库并非全部都是正文字库成千万上个字符,很多个人或者小公司做的字库都是常用字库三五千,五六千字,前辈们已经帮我们筛选了哪些字符要做。我们跟着把字符替换就可以了,此处要注意的是,切勿将所有字符修改完全,要不然你做的字体中某些字你没修改还是沿用了原来的样子,会出现你的字体出现了其他字体的字符样式,之所以我们有时候用了某种字体但是有些字符字体是宋体或者是一个空白框就是因为这些字符没有重新设计而使用了宋体字来代替或者代替字也没有。按照方法1当中的字符定位按部就班一个一个替换就行了。
导出字体文件
字体设计完成保存后需要执行“文件”-“生成字体”命令讲字体导出成TrueType(.ttf) 或 OpenType (.otf)格式的字体,点击“Generate”生成字体文件,有弹窗选是,也可根据自身需要选择生成其他格式。需要注意的是,如果使用第二种方法修改已有字库的方式来设计的话记得在字体信息中修改字体名称和版权信息。
好了,以上是FontForge的一些简单操作和用法,如果觉得文章不错可以分享给身边的朋友。在使用过程中发现其他方法,欢迎分享。
原文地址:https://www.cnblogs.com/xiaoruilin/p/11393752.html
- Consul微服务的配置中心体验篇
- 如何使用Sentry实现Hive/Impala的数据脱敏
- 如何使用Oozie API接口向Kerberos环境的CDH集群提交Shell作业
- Docker下redis的主从、持久化配置
- vuejs、eggjs、mqtt全栈式开发设备管理系统
- Xss和Csrf介绍
- GraphQL介绍&使用nestjs构建GraphQL查询服务
- 使用auth_request模块实现nginx端鉴权控制
- Docker学习之Docker镜像基本使用
- Docker学习之Centos7下安装
- Impala的Short-Circuit Reads
- js各种继承方式汇总
- Cloudera Navigator异常分析
- lodash源码分析之数组的差集
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法