假如我想开源一款新字体

低并发编程

共 2398字,需浏览 5分钟

 · 2023-08-07

最近在 IT 之家刷到个新闻,英特尔面向开发者发布了一款新的开源等宽字体 Intel One Mono这套字体由英特尔品牌团队、Frere-Jones Type 和 VMLY&R 合作开发,官方称 "集清晰度、易读性和保护开发者视力于一体"



此外,视力较弱的开发者和盲人开发者也参与了设计工作,他们在设计的每个阶段都会提供反馈。


现在设计一款字体都这么卷了么... 但设计字体这项工作,不论花了多少努力多么专业,对自己来说唯一的评价标准就是看着舒不舒服。


------


从 intel-one-mono 官方 GitHub 仓库把源码下载下来,在 mac 上双击 .ttf 文件,就可以把字体安装上了。



打开字体册程序,会看到刚刚装好的字体预览。



打开 Idea 把默认字体配置上,我们对比一下差异。


这是我 Idea 原本的 JetBrains Mono 字体。是我觉得写代码时最舒服的字体,没有什么令我觉得奇怪的地方。



这是 Intel One Mono 字体。比上面的字体更扁,更细,我看着稍稍有点刺眼。



当然,他们都是等宽字体,不过我还是觉得 JetBrains Mono 更舒服,看来经典还是经典呀,程序员们天天面对的字体没必要整什么花活。


------


如果我们想自己搞出一个字体,应该怎么办呢?从 Intel 这个开源仓库中看到,其实最简单的就是把刚刚的 .ttf 格式的文件给搞出来一个就可以了。


.ttf 格式的文件是字体格式文件的一种,叫 TrueType,是微软和苹果共同研发的一套字体格式标准。除此之外还有 OpenType(.otf),是继 TrueType 之后微软又和 Adobe 公司共同研发的一套字体标准。字体标准的制定,背后也有一段精彩的故事,等我搞明白了再给大家讲述。


这些字体格式都是跨平台的,即 Windows、Mac、Linux 上都可以识别并安装,所以我们就搞出 .ttf 文件即可。


找到一款专业的字体设计软件 FontLab,打开它的官方网站。



看了价格之后,吓得我赶紧关闭了网页。又找到了一款免费的且直接可以在网页端编辑的字体设计软件,Glyphr Studio


里面设计字体的时候需要使用平滑的贝塞尔曲线来绘制,如果熟悉 Flash 或 PS 里面的钢笔工具的同学就没有学习成本了。



设计好之后直接点击导出即可,导出格式没有 ttf 只有 otf,都一样,正好尝试下安装 otf 格式的字体。



下载好之后,直接在 mac 上双击下载好的 .otf 文件就可以直接安装了。



使用 Idea 打开这个丑陋的字体,就可以看到效果了。



其实还挺有特色的,工作烦躁的时候可以用自己设计的字体玩一玩,缓解一下工作压力。


------


不过在 Linux 上,好像我们很少听到字体这个概念,尤其是在服务器上处于字符模式而非图形模式下的 Linux 发型版。


很简单,因为没有不同字体渲染的需求,即使你把微软雅黑字体放上去也没法在字符模式下发挥作用。


但是,却仍然有应用程序会用到,比如使用 Java 的 POI 工具进行导出时,如果使用的是 OpenJDK 版本,则会依赖操作系统中的字体相关的库。


所谓依赖字体相关的库,通常指的是字体管理工具 fontconfig,字体渲染库 freetype 以及字体格式文件本身比如上面说的 .ttf 文件。


在 centos7 上通过 yum install 方式安装 fontconfig 时会自动把 freetype 安装好,并同时安装一个默认的字体格式文件在 /usr/share/fonts 目录下。如果没有安装,那么使用 POI 报表导出 Excel 表格时可能会报错,你可以写一段简单的代码来模拟下报错信息。



POI 中正是因为使用了 awt 包下的这个 Font 类导致需要依赖操作系统的字体库而报错,我个人认为是个设计缺陷,导出 POI 报表并不需要真正渲染字体,但却为了图方便使用了 Font 类而间接依赖了字体库。


这里给大家一个思考题,在使用 OracleJDK 的时候,即便操作系统里没有字体库,也不会报错,只有用 OpenJDK 的时候才会报错,这是为什么呢?


------


以上我们见到的字体,都是比较现代的字体格式了,叫做轮廓字体,即使用贝塞尔曲线来描述字体的样子,可以简单的进行缩放和倾斜等线性变换,不会模糊。


古老的计算机中使用的是点阵字体,我们找不到古老的计算机,我推荐一款非常有趣的软件,叫 cool-retro-term,是个模拟古老计算机显示的终端,比如我输入 top 命令后是这样的,很有年代感。



当年的小霸王、任天堂等都使用这样的字体,一块一块的感觉。这些字体一旦放大就会变成明显的像素风,有马赛克一样的锯齿边缘。


所以,为了解决这个问题,才有了后面的轮廓字体,也就有了后面 Adobe、微软、苹果三家公司的字体标准大战,我们找时间再讲。


------


想必大家也都有着和字体这项技术发生的故事,不论是工作中碰到的棘手问题,还是小时候或者生活中的奇妙记忆。


正文没看够,我们评论区见~


浏览 3258
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报