有些 CDN 不支持 Brotli ,但有时想要对大文件实现更高压缩率,自己实现解码器又不划算。
好在 Firefox 和 Safari 的 DecompressionStream API 现已支持 brotli 解压,目前只有 Chrome 不支持。
事实上 Brotli 最初是为 WOFF2 格式的字体设计的。于是想到一个奇技淫巧:将原始数据编码成 PNG 图片,然后嵌入到字体的 CBDT 彩色字形表中(类似 emoji ),再将字体打包成 WOFF2 格式。这样就白嫖了 Brotli 压缩。
(出于优化,PNG 的压缩率设为 0 ,即仅存储不压缩,冗余保留给最终的 Brotli 压缩)

解码也很简单,前端使用该字体在 canvas 上渲染字符,然后读取像素即可,几百字节就能实现。