在使用 Golang 的 gg 库批量生成获奖证书图片时,遇到了一些字体相关的问题。主要涉及:
- 字体是否免费,防止被律师函警告
- otf 与 ttf 字体文件的区别
- gg 库对 otf 字体文件的支持问题
- 字体文件的各种后缀的区别
下面逐一记录。
思源黑体和思源宋体是免费的么
思源黑体(Source Han Sans)和思源宋体(Source Han Serif)都是开源字体。它们是免费的,可以在个人和商业项目中使用。遵循 Apache 许可证,可以自由使用和分发。
otf 与 ttf 的区别
- ttf 是 TrueType Font 的缩写,它支持矢量图形,具有较好的跨平台兼容性。
- otf 是 OpenType Font 的缩写,它在 ttf 的基础上增加了更多的功能,如支持多种语言、复杂的字形和高级排版功能。
- ttf 是 otf 的子集,otf 包含了 ttf 的所有功能,并且增加了更多的功能。otf 的文件大小通常比 ttf 大,但它提供了更好的字体渲染效果和更多的排版选项。
- ttf 和 otf 都是矢量字体格式,可以在不同的分辨率下保持清晰度。它们都可以在网页、应用程序和操作系统中使用。
- ttf 和 otf 都可以通过字体转换工具进行转换。otf 可以转换为 ttf,但 ttf 不能转换为 otf,因为 ttf 不支持 otf 的高级排版功能。
fogleman/gg 这个库不支持 otf 字体文件
https://github.com/fogleman/gg/pull/200
好在,有人 fork 了这个库,并添加了对 otf 字体的支持。
https://github.com/aa88kk/gg/tree/master
这样就省去了将 otf 转换为 ttf 的麻烦。
字体文件各种后缀的区别
- SourceHanSerifCN-SemiBold.otf:半粗体
- SourceHanSerifCN-Bold.otf:粗体
- SourceHanSerifCN-ExtraLight.otf:特细体
- SourceHanSerifCN-Heavy.otf:特粗体
- SourceHanSerifCN-Light.otf:细体
- SourceHanSerifCN-Medium.otf:中等粗细体
- SourceHanSerifCN-Regular.otf:常规体
SemiBold 跟 Medium 的区别:
- SemiBold 是半粗体,介于 Regular 和 Bold 之间,通常用于强调文本,但不如 Bold 那么突出。
- Medium 是中等粗细体,通常比 Regular 略粗,但不如 SemiBold 或 Bold 那么明显。它通常用于正文文本,提供更好的可读性。
- 在设计中,SemiBold 更适合用于标题或需要强调的文本,而 Medium 更适合用于正文或较长的文本段落。
使用哪种,可以参考设计师提供的 PPT 中的设计规范。
同时这些字体文件,可以保存到 Golang 项目下的 fonts 目录中,方便统一管理。
其他
目前是在 Ubuntu 服务器上进行图片生成的,后续测试一下在 Windows 上用 golang 搞个客户端试试是否可用。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式