字体格式转换
Font Converter
在浏览器里把 TTF、OTF 和 WOFF 互转,并生成配套的 @font-face 规则;WOFF2 需要 Brotli,这里不做,会指给你桌面工具。
在 sfnt 格式和 WOFF 1.0 之间双向转换,从你拖入的文件判断该往哪个方向走。两个方向都无损:WOFF 是一个容器,打包和解包给回同样的表,`head.checkSumAdjustment` 会重新计算,所以结果能通过验证。WOFF2 会被拒绝,页面会解释原因,而不是悄悄失败。
TTF · OTF → WOFF,或者 WOFF → TTF · OTF
放一个文件进来,方向由这边判断。一切都在这个标签页里完成。
哪些能做,哪些不能
- · TTF · OTF ⇄ WOFF 1.0:按 WOFF 规范(W3C,2012)逐表做 zlib 压缩,写一个 44 字节的头和目录。压缩用的是浏览器自带的
CompressionStream('deflate'),解包时按原来的校验和重新拼出 sfnt,所以head.checkSumAdjustment也是对的。两个方向都无损。 - · WOFF2 既造不出来也解不开。它需要 Brotli,而 Web 平台并不把 Brotli 暴露给页面。真要 WOFF2,就用桌面工具——通常还能比 WOFF 再小 20–30%。
- · TTF ⇄ OTF(CFF) 这种换轮廓格式的事,是重画而不是转换,所以这里不提供。扩展名是 .otf、里面其实是 TrueType 的字体,照常处理。
- · 字体的授权(OS/2 的 fsType)不会因为转换而改变。放到服务器上之前先看清楚发布条款。
要减体积,格式转换远不如字体子集化:把一个韩文字体裁到 2,350 个音节,能小 90% 以上。
怎么用
拖入一个文件
TTF 或 OTF 被打包成 WOFF;WOFF 被解包回 TTF 或 OTF,取决于它装的是哪种轮廓。没有方向开关,因为前四个字节的签名已经说明了该往哪走。
检查前后的大小
转到 WOFF 通常减 40–50%,那是逐表的 zlib,没有什么巧妙的东西。如果几乎没动,字体很可能已经是压缩数据——比如一个有大量打包字符串的 CFF 字体。
取文件和 @font-face
声明假定文件和样式表放在一起,字重和斜体值从字体的 OS/2 和 post 表里读出,而不是从文件名猜。
常见问题
为什么它不做 WOFF2?
WOFF2 是 Brotli 压缩的,还会重排和变换字形表。Web 平台只给页面带 deflate 和 gzip 的 `CompressionStream`——没有 Brotli,所以在浏览器里两个方向都不可能。在桌面上,fonttools(`pyftsubset --flavor=woff2`)或 `woff2_compress` 能做,在 WOFF 之上大约再减 20–30%。
它能把 TTF 变成真正的 OTF 吗?
不能,任何诚实的工具都不能。TrueType 用二次曲线,CFF 用三次曲线;在它们之间转换是带容差的曲线重新拟合,会改变轮廓——那是重新绘制字体,不是转换它。这里处理的是常见的那种情况:一个内部是 TrueType 轮廓的 `.otf`,只有扩展名有误导性。
我还需要 WOFF 吗,还是 TTF 就行?
由服务器用 gzip 或 brotli 提供的 TTF 最终接近 WOFF,所以格式没有以前那么要紧了。WOFF 仍然值得有:服务器不压缩时它也压缩,而且每个要紧的浏览器都支持它十年了。大得多的收益是子集化,不是容器。
转换会改变许可允许的范围吗?
不会。OS/2 的 fsType 和每条 name 记录原样通过,这意味着一个你不能嵌入的字体,变成 WOFF 之后仍然是一个你不能嵌入的字体。放到服务器上之前检查分发条款;查看工具会显示这些记录。
可以从这些接进来
字体文件查看
Font Inspector
打开一个字体文件,按 Unicode 区块显示字形覆盖、韩文音节数、字重、可变轴、嵌入许可和许可证名称记录。
字体子集化
Font Subsetter
把 TrueType 字体裁到你的文字真正用到的那些字形,还能顺手包成 WOFF——中文和韩文网页字体从几兆变成几十 KB,差别就在这一步。
SVG 编辑器与解读
SVG Editor and Explainer
一边在实时渲染旁边改 SVG,一边解释这个文件:viewBox 与缩放、变换、每一条路径命令、继承来的填色、白白占地方的字节,以及它在 <img>、data URI 和内联三种用法下各会坏在哪里。
设备样机图
Device Mockup
把截图放进手机、平板、笔记本或浏览器外框里,配上背景和阴影。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
CSS 美化与压缩
CSS Beautifier & Minifier
格式化或压缩 CSS,不重排任何声明,原本的记号序列一个不动。
字体文件查看
Font Inspector
打开一个字体文件,按 Unicode 区块显示字形覆盖、韩文音节数、字重、可变轴、嵌入许可和许可证名称记录。
字体子集化
Font Subsetter
把 TrueType 字体裁到你的文字真正用到的那些字形,还能顺手包成 WOFF——中文和韩文网页字体从几兆变成几十 KB,差别就在这一步。
颜色格式转换
Colour Format Converter
在 HEX、RGB、HSL、HWB、LAB、LCH 和 OKLCH 之间换算同一个颜色,并给出最接近的已知色名。
颜色拾取器
Colour Picker
在 OKLCH 色板上选色,也可以用屏幕吸管或从上传的图片里取色,并按任意表示法复制出来。
对比度检测
Contrast Checker
按 WCAG 2 和 APCA 给前景色和背景色这一对打分,并推荐最接近的能通过的颜色。