打造属于自己的字体(转)

2023-11-11

打造属于自己的字体(转)[@more@]

  不少做平面的朋友可能都有过这样的经历:在自己的作品中要使用某种特效字体,但是到处都找不到符合自己要求的。于是有些朋友选择了自己绘制,这当然解决了当时的问题,可你有没有想过,把你绘制的字符图形制作成为真正意义上的、能够在Windows系统中使用的字体呢?或许你会认为这是专业软件公司的事,个人制作是不是太困难了?

  其实只要我们选好工具,掌握方法,制作自己的字体并不困难。

  

  一、字体基本知识

  平时我们常见的字体格式主要有以下几种:

  1.光栅字体(.FON)

  这种字体是针对特定的显示分辨率以不同大小存储的位图,用于Windows系统中屏幕上的菜单、按钮等处文字的显示。它并不是以矢量描述的,放大以后会出现锯齿,只适合屏幕描述。不过它的显示速度非常快,所以作为系统字体而在Windows中使用。

  2.矢量字体(.FON)

  虽然扩展名和光栅字体一样,但是这种字体却是由基于矢量的数学模型定义的,是Windows系统字体的一类,一些windows应用程序会在较大尺寸的屏幕显示中自动使用矢量字体来代替光栅字体的显示。

  3.PostScript字体(.PFM)

  这种字体基于另一种矢量语言(Adobe PostScript)的描述,常用于PostScript打印机中,不过Windows并不直接支持这类字体,要在Windows使用这类字体需要安装"Adobe Type Manger"(ATM)软件来进行协调。

  4.TrueType字体(.TTF)

  这是我们日常操作中接触得最多的一种类型的字体,其最大的特点就是它是由一种数学模式来进行定义的基于轮廓技术的字体,这使得它们比基于矢量的字体更容易处理,保证了屏幕与打印输出的一致性。同时,这类字体和矢量字体一样可以随意缩放、旋转而不必担心会出现锯齿。我们下面要制作的字体就属于这一类型。

  一个完整的TTF字体有基本拉丁文(字母A-Z大小写、常用符号)、扩展拉丁文(音标、注音符号)、图形符号、控制符号以及其他很多部分组成,不过我们可以制作只包含基本拉丁文区的字体。我们这里要用到两个软件:CorelDraw、Font Creator Program。下面我们就开始字体的制作。

  二、制作自己的字体

  第一步 用CorelDraw完成字符绘制

  相信对于每个搞平面设计的朋友来说,CorelDraw应该是非常熟悉的了。使用它来绘制字体主要有两个原因:一是CorelDraw的图形绘制功能非常强大,绘制复杂形状的图形易如反掌;二是在同类软件中CorelDraw是唯一一款直接支持TrueTupe(.TTF)输出的。

  注意!CorelDraw10的默认安装是不包含TTF格式输出支持的,需要在安装时选择"自定义安装",并且在"导出文件类型"中的"矢量文件格式"里面选中"TTF字体/TTF"一项。不过到了最新的CorelDraw11,这项功能却不见了。下面我以目前常用的CorelDraw10为例,讲述一下使用CorelDraw输出字体方法。

  1.启动CorelDraw,绘制出要作为字体的图形(在此省略了具体的图形绘制的过程,具体的绘制方法可以参阅其他相关教程和书籍或访问天极设计在线的 CorelDraw专栏)。

1143916901_ddvip_8935.gif

  

  2.将要作为单个字符的对象使用焊接或者组合工具组合成单一对象。这一点很重要,因为CorelDraw导出字体对象时一次只能导出一个单一对象,否则会提示"对象太多"而无法导出。有时将字符对象组合后可能会得不到我们所希望的结果,这一点应在开始绘制时就应该考虑。

1143916901_ddvip_126.gif

  

  3.将所有对象的组合操作完成后,选中其中一个要作为字符的对象(在这里选择的是小写的"a"),点击"文件"-"导出"或直接按下快捷键"Ctrl+E"。此时将弹出"导出"对话框,在文件类型中选择"TTF-TTF字体文件",在文件名称中输入要导出的字体文件的名称,并且确认已在右下角复选框中的"仅选中的"一项前打上钩。

1143916901_ddvip_4522.gif

  

  4.按下"导出"按钮,弹出"导出选项"对话框。在类别名称中输入一个名称(由于我们制作的字体并不用于商业发布,不必遵循严格的标准,可以随意输入)。选中"符号字体"一项,这样字体将作为符号字体生成而不具有内部索引和倾斜加粗等内部属性。

1143916901_ddvip_2359.gif

  

  5.按下"确定"后会弹出一个对话框要求再次确认,再次点击"确定"进入"字体导出" 对话框。由于在这里只制作了字母A-Z的大小写和标点符号,因此在右上角"字符块"的下拉列表中选择"基本拉丁文",在下面的列表中选中小写字母"a"。我们还可以点击左下角的"选项"按钮调出刚才的"导出选项" 对话框来对之前的设定进行修改。在"选项"按钮上面的部分主要是字符的行列间距、字符大小等的设定,建议还是到Font Creator Program中进行设置,在那里的设置要比在CorelDraw中的更直观、便捷。

1143916901_ddvip_5557.gif

  

  6.再次按下"确定"按钮,一个只包含一个字母的字体文件已经被导出了。再次选中下一个字符"b",按下"Ctrl+E"在"导出"对话框中选中刚才导出的文件。点击"导出"将直接弹出"字体导出" 对话框,这时会发现在右侧的列表中小写字母"a"已经显示为黑色了,这表示在这个字体中已经包含这个字母了。在表中选择"b"按下"确定"后,字母"b"就被追加到刚才生成的文件中去了。

  7.按照以上的步骤,依次将其余的字母及符号追加入那个文件,一个基本的符号字体文件初步己制作完成了。

  第二步 用Font Creator Program完成字体调整和打包

  Font Creator Program对于一些朋友来说可能有些陌生,它是一款不错的字体制作软件,可以用来绘制字体、写入字体版权信息、控制字体属性等。这款软件是由High Logic公司推出的一款共享软件,如果不注册只能使用30天。下面我以目前常用的由YC-周汉化的Font Creator Program3.0版本为例,讲述一个真正意义上的字体整理打包的过程。

  1.启动Font Creator Program,其界面如下:

1143916901_ddvip_5229.gif

  2.选择"文件"-"打开"-"字体文件",打开刚才制作的字体文件(其实前面CorelDraw制作的TTF文件已经能够使用了,只是使用CorelDraw生成的字体文件很不稳定,容易导致死机,因此这里使用Font Creator Program进行整理)。

  3.不要关闭刚才打开的文件。选择"文件"-"新建",弹出"新建文件"对话框,这里有三种字符集可供选择:

  a.Symbol(符号字体),这类字体内部不包含索引表,自由性比较大,通常用来存储一些非标准符号,在一些软件中可以作为图形插入,Windows中的Wingding就属于这种字体;

  b.Unicode(编码字体),这是现在最常见的一种类型,主要是为了协调东西方语言的字符数量相差悬殊而制定的一种16位符号编码策略。Unicode可以表达65536个字符并为每个符号建立唯一的字码,保证了字符编码的正确性。

  c.WGL4,这种字体和Unicode很相似,Font Creator Program在安装目录中的"Template"子目录里提供了一个WGL4编码的字体,有兴趣的话可以看看;

  在此选择Unicode一项,新建一个空白的字体文件。

  4.切换到刚才打开的那个刚制作出来的字体文件(可以注意到它在Font Creator Program中显示非常混乱,这也是不推荐直接使用CorelDraw输出的字体文件的一个原因),双击其中的一个方框,将弹出字符编辑窗口。用鼠标拖曳一个矩形框将其中的字符全部选中,按下"Ctrl+C"将其复制到剪贴板中。

1143916901_ddvip_5133.gif

  

  5.回到刚才新建的那个文件,发现和CoreldRAW输出的符号字体不同,Unicode字体在每一个代表字符的方框左上角都显示了一个对应此位置编码的字符。刚才复制出来的是"a",这时候就可以在左上角显示为"a"的方框上双击,在弹出的空白字符编辑窗口中按下"Ctrl+V"将剪贴版中的字符复制进去。由于CoreldRAW默认输出的字符的大小和位置都不理想,虽然字符已经被复制入当前的编辑窗口,却不在显示范围之内。可以通过工具栏上的" 1143916901_ddvip_4596.gif"按钮来最大化显示当前对象,或者用" 1143916901_ddvip_2136.gif"按钮来进行放大/缩小显示。

  6.调整好了适合的观察范围,会发现刚才复制进去的字符居然在整个编辑区偏右且非常靠上面的地方,这显然是不正确的。此时可以用拖拽的方法将其拖到画面中两条红线的相交处(原点),也可以使用"变换"浮动窗,利用精确的数值对当前对象进行调整,相信会使用CorelDraw的朋友对此应该不会陌生。在"大小"选项卡中设置字符的大小;在"位置"选项卡的"x位置"和"y位置"中输入"0",将对象移动到原点。进一步观察字符编辑窗口,发现除了两条相交的红线以外还有两条水平的黑线和两条垂直的黑色虚线,其中:垂直的线表示了字距,水平的表示了行距。水平黑线无法调整,制作的字符大小以在两条黑线内为宜;垂直的黑色虚线是可以拖拽的,通过拖拽黑色虚线来决定该字符与其它字符的间距。

1143916901_ddvip_83.gif

  

  7.完成该字符编辑后,将字符编辑窗口关闭。这时代表字符的方框的左上角显示的"a"已经由灰色变为绿色了,表明当前位置中已经有物件了,此时建议将文件保存一次。重复4-6步骤,将其他的字符也用相同的方法转移到新建的文件中并进行调整。当所有的字符都完成以后,会发现新建的文件中的字符显示要比最初由CorelDraw直接生成的文件中的整齐多了。

1143916901_ddvip_8871.gif

  

  8.在所有的字符都处理完成了以后,可以按下"F5"键进入字体测试窗口对刚才制作的文件进行测试。如果发现不满意的字符,可以再按照前面的步骤重新调整。

1143916901_ddvip_2395.gif

  

  9.在字符都已经绘制完成以后,就可以将字体命名发布了,由于这里制作的不是用于商业发布的字体,自然不必遵循严格的命名规范。点击"格式"-"命名",进入"命名对话框"。在右边的命名区中输入自己想要的内容,要注意的是,"版权信息"、"字体系列名称"、"字体完整名称"和"字体子集名称"最好不要空白,其他的则可以不选。点击右下角的"高级"按钮还可以对字体的名称进行进阶设定。在左边的"平台"设置区可以选择不同的平台,同时右边的命名区中的内容也会相应改变。

1143916901_ddvip_8976.gif

  

  10.按下"保存"按钮,一个自己制作的字体就大功告成。欣赏一下自己的劳动成果吧,如果你愿意的话,还可以拿到网上去发布。

1143916901_ddvip_7368.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-949814/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-949814/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打造属于自己的字体(转) 的相关文章

  • MySQL基础(非常全)

    MySQL基础 一 MySQL概述 1 什么是数据库 答 数据的仓库 如 在ATM的示例中我们创建了一个 db 目录 称其为数据库 2 什么是 MySQL Oracle SQLite Access MS SQL Server等 答 他们均是
  • Minikube 架构及启动流程剖析

    原文作者 wzqnls 编辑 夏天 对于要学习 Kubernetes 或者需要本地开发的开发人员来说 Minikube 是一个不错的选择 通过使用 Minikube 这个工具 我们可以非常快捷地在本地部署一套单节点的 Kubernetes
  • java调优总结

    JVM调优总结 序 几年前写过一篇关于JVM调优的文章 前段时间拿出来看了看 又添加了一些东西 突然发现 基础真的很重要 学习的过程是一个由表及里 再由里及表的过程 呵呵 所谓的 温故而知新 而真正能走完这个轮回的人 也就能称为大牛或专家了
  • Win11微软账号登录不上?Win11登录Microsoft账户出错的解决方法

    Win11微软账号登录不上 近期有部分Win11用户反映在登录微软账号会出现一直转圈 无法登录的情况 这样导致部分功能都不能正常使用了 为此十分令人头疼 那么对于这一情况 有没有什么方法可以有效的解决呢 下面小编教给大家操作方法 大家可以去
  • 小白学协程笔记2-c语言实现协程-2021-2-10

    文章目录 前言 一 c语言中协程切换方式 二 使用setjmp 和 longjmp实现协程切换 1 setjmp和longjmp函数简介 2 协程实现 三 使用switch case实现协程切换 1 switch case小技巧 2 协程实
  • windows下命令行修改系统时间;修改系统时间的软件

    找了很久 都没有找到 还找了关键词 dos下修改系统时间 因为看到linux下修改系统时间是用hwclock 命令写入主板芯片 而我由于某些原因想自动化修改系统时间 所以找windows下修改系统时间的软件 没有找到 有一个 意天禁止修改系
  • RTX线程通信之——线程标志

    文章目录 Thread Flags 概念 RTX线程标志API 案例 LED灯同步闪亮 小结 参考资料 Thread Flags In a real application we need to be able to communicate
  • 设备管理过程

    复杂度2 5 机密度2 5 最后更新2021 04 19 AIX中对设备会有如下五个操作 define aix下能看到设备的定义 但驱动程序并没有加载或初始化 该设备不可用 lsdev看到设备时defined 很多逻辑设备 vg lv等 只
  • 虚拟机管理程序、虚拟化和云: 深入剖析 PowerVM 虚拟机管理程序

    预备知识 Power 是没有限制的虚拟化 一些企业打算依靠 PowerVM 虚拟化将多个工作负载整合到较少系统上 从而提高服务器利用率 降低成本 Power VM 为基于 Power Systems 平台的高级 RAS 功能和领先性能为 A
  • office2013 excel 打开时提示excel词典xllex.dll文件丢失或损坏

    今天打开Excel时 发现报错 xllex dll文件丢失或损坏 我用的是office2013 网上找了好多都是2007的dll文件 导入不了 于是乎重装office 问题解决 但还是把xllex dll烤出来做个备份吧 参考下面步骤即可
  • Windows 添加永久静态路由

    route add p 10 10 0 0 mask 255 255 0 0 10 10 6 1 p 参数 p 即 persistent 的意思 p 表示将路由表项永久加入系统注册表
  • CF、SF、OF、ZF标志位

    没学汇编 这种题我真是做一道错一道 OF overflow flag 溢出标志位 溢出标志位 OF 1 表示带符号整数运算时结果发生溢出 对于无符号整数运算 OF没有意义 对于有符号数的溢出判断方式有 1 采用一位符号位 思想为 或 则为溢
  • Linux系统编程:多线程交替打印ABC

    引言 分享关于线程的一道测试题 因为网上基本都是Java的解决方法 决定自己写一篇来记录一下线程的学习 问题描述 编写一个至少具有三个线程的程序 称之为线程 A B 和 C 其中线程 A 输出字符 A 线程 B 输出字符 B 线程 C 输出
  • 操作系统笔记六(文件管理)

    1 文件逻辑结构 1 1逻辑结构的文件类型 分类 有结构文件 例如 PNG文件 无结构文件 1 2顺序文件 1 3索引文件 2 辅存的存储空间分配 2 1分配方式 连续分配 直接分配连续的存储空间 链接分配 隐式链接 在盘块内指定下一个盘块
  • 内存管理——分页分段

    一 分页存储管理 1 页面与页框 1 页面 将一个进程的逻辑地址空间分成若干个大小相等的片 称为页面或页 并为各页加以编号 2 页框 相应于页面 把内存空间分成和页面相同大小的若干个存储块 称为 物理 块或页框 frame 3 页内碎片 在
  • Anaconda 安装 Python 库(MySQLdb)的方法-(转)

    安装python库的过程中 最重要的地方就是版本需要兼容 其中操作系统为64位 Python为2 X 64位 下载安装文件的时候也要注意版本匹配 其中文件名中包含的cp27表示CPython 2 7版本 cp34表示CPython 3 4
  • 图解五种磁盘调度算法, FCFS, SSTF, SCAN, C-SCAN, LOOK

    一 FCFS 调度 先来先服务 磁盘调度的最简单形式当然是先来先服务 FCFS 算法 虽然这种算法比较公平 但是它通常并不提供最快的服务 例如 考虑一个磁盘队列 其 I O 请求块的柱面的顺序如下 98 183 37 122 14 124
  • CentOS Linux服务器安全设置

    转自 http www osyunwei com archives 754 html 引言 我们必须明白 最小的权限 最少的服务 最大的安全 所以 无论是配置任何服务器 我们都必须把不用的服务关闭 把系统权限设置到最小话 这样才能保证服务器
  • 如何快速构建CMBD系统-glpi

    脚本后续更新及迭代将由kkitDeploy项目代替 https github com luckman666 kkitdeploy server 请大家持续关注kkitDeploy 一 CMBD系统构建步骤 起初 开发这套CMBD系统是为了帮
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位

随机推荐

  • 灯光 (1)平行光(Directional Light)

    1 平行光 Directional Light 定义一个光线方向向量而不是位置向量来模拟一个定向光 着色器的计算基本保持不变 但这次我们将直接使用光的direction向量而不是通过position来计算lightDir向量 struct
  • C++类中const修饰的函数与重载

    一 重载的定义 重载声明是指在同一个作用域内 可以声明几个功能类似的同名函数 但是这些同名函数的形式参数 指参数的个数 类型或者顺序 必须不同 返回值的类型不同 不能作为重载函数的判断依据 如下举例一组重载函数 void fun int a
  • FTL 入门

    最近的项目中用的是ftl文件而不是传统的jsp 于是上网查了一下 感觉这是个好东西 于是准备记录下来 以下摘自百度百科 1 概念 FreeMarker是一款模板引擎 即一种基于模板和要改变的数据 并用来生成输出文本 HTML网页 电子邮件
  • AttributeError: ‘function‘ object has no attribute ‘_name_‘

    在运行python的下面代码时 def log func def wrapper args kw print call s func name return func args kw return wrapper log def now p
  • layui table单元格事件修改值

    事件中的 this相当于document getElementById id 替代方法就是将原本 document getElementById id InnerHTML 填充代码 替换成 id html 填充代码
  • 数据结构_队列

    队列类似于日常生活中的排队 它也是一种特殊的线性表 队列和栈有相反的逻辑 但是却属于同类结构 文章目录 队列的介绍 队列的结构 队列的实现 完整代码及测试程序 循环队列 循环队列的介绍 循环队列的实现 完整代码 队列的介绍 定义 队列是一种
  • Truechain运用docker镜像搭建TrueChain测试私有环境

    https github com truechain wiki blob master task list task 20180917 md 安装docker Mac参考https blog csdn net jiang xinxing a
  • 图像边缘检测——一阶微分算子 Roberts、Sobel、Prewitt、Kirsch、Robinson(Matlab实现)

    图像边缘一般指图像的灰度变化率最大的位置 成因主要如下 1 图像灰度在表面法向变化不连续 2 图像中物体在空间上的深度不一致 3 在光滑的表面上颜色不一致 4 图像中物体的光影 边缘检测指的是从图像中检测边缘点和边缘段 并且描述边缘方向的过
  • 无重复字符的最长字串

    1 给定一个字符串 s 请你找出其中不含有重复字符的 最长子串的长度 代码展示 class Solution public int lengthOfLongestSubstring String s int n s length if n
  • PMAC网络USB设置

    一 连接到PMAC 在默认情况下 Power PMAC有一个IP地址为192 168 0 200 没有互联网连接 要安装所需的软件包并获得时间 您的PMAC将需要一个internet连接 为了建立你的网络连接 可以一个u盘上放一个文件夹 P
  • MYSQL数据库基本操作——DDL

    MYSQL DDL 何为DDL 对数据库的常用操作 对表结构的操作 创建表 表的其它操作 修改表结构 何为DDL DDL是数据定义语言 包括对数据库的常用操作 对表结构的常用操作 修改表结构三部分 通俗来讲 就是不包括对表内数据进行操作的所
  • 解救开发人员写文档的痛苦

    开发人员的痛苦 接手前人的项目 没有接口文档 只能看代码学习 接口文档用txt word markdown写 编写特别麻烦 写出来的文档也不美观 多层级的参数 子参数 写起来麻烦 不知道怎么表达更好 有的文档需要图文并茂 需要代码示例 需要
  • Shiro免密登录

    Shiro免密登录 代码构成 代码构成 1 创建枚举类LoginType 登录类型 public enum LoginType PASSWORD password 密码登录 NOPASSWD nopassword 免密登录 private
  • 计算机专业的浪漫情话,计算机专业表白情话 污到流水文章

    次日早起 江笑还没有到学校 就收到了顾言兮的一条短信 陈昊轩回来了 在餐厅遇到 依然众星捧月 江笑皱了一下眉 要不是这条短信 她竟然都差一点忘了还有陈昊轩这个人了 众星捧月 也能想象 陌家成了那样 陌雪是不可能在栓得住陈昊轩了 那其他对于陈
  • 游戏开发unity xlua框架知识系列:C#如何调用lua

    参看xlua框架的LuaDLL cs文件后 才知道其实lua仍然是用c写的源代码编译成不同平台的库 然后通过unity的DLLImport方法来使用的
  • 学习SQL注入基础板块---准备工作以及踩的坑

    准备 下载phpStudy 建议下载2018版本的 因为新版本让我这个菜渣折腾挺多天 下载sqli labs GitHub下载 之后将其放在安装好的phpstudy的WWW目录下 下载HackBar插件 GitHub下载2 1 3版本的 不
  • 四十岁以上的程序员都去干啥了?

    编译丨Linsa 在美国 工作者的年龄中位数是42岁 而Stack Overflow 2016年的程序员调查中 程序员的平均年龄是29 6岁 中位数为27岁 40岁以上的程序员只占总数的12 7 2016年Stack Overflow程序员
  • 方格填数(2016年蓝桥杯)

    如图 如下的10个格子 填入0 9的数字 要求 连续的两个数字不能相邻 左右 上下 对角都算相邻 一共有多少种可能的填数方案 请填写表示方案数目的整数 看到这题第一个想到的方法就是回溯 就很像八皇后 能填进去就填 填不进去就看下一个位置 我
  • 剑指 Offer 36. 二叉搜索树与双向链表(java+python)

    输入一棵二叉搜索树 将该二叉搜索树转换成一个排序的循环双向链表 要求不能创建任何新的节点 只能调整树中节点指针的指向 为了让您更好地理解问题 以下面的二叉搜索树为例 我们希望将这个二叉搜索树转化为双向循环链表 链表中的每个节点都有一个前驱和
  • 打造属于自己的字体(转)

    打造属于自己的字体 转 more 不少做平面的朋友可能都有过这样的经历 在自己的作品中要使用某种特效字体 但是到处都找不到符合自己要求的 于是有些朋友选择了自己绘制 这当然解决了当时的问题 可你有没有想过 把你绘制的字符图形制作成为真正意义