Open Type字体格式标准1.7正式支持三种类型的彩色字形,以满足表情符号的需求。截至2016年底,1.8版本增加了对另一个变体的支持。平台支持不同:
- Microsoft/Mozilla的
COLR
/CPAL
表使用标准的Truetypeglyf
或PostscriptCFF
轮廓。 - Mozilla/Adobe/W3C的
SVG
表使用SVG轮廓和CSS变量。 - Google的
CBDT
/CBLC
表格使用嵌入式PNG位图。 - Apple的
sbix
表使用嵌入的PNG、JPEG或TIFF位图(以及标准之外的pdf)。计划支持掩码和别名。
SVG
表明确考虑动画-使用CSS, JS, SMIL或嵌入文件-但我不确定已经实现了任何地方:
字形渲染
SVG字形描述可以静态呈现,也可以启用动画。
是否有任何基于 png的实现支持动画使用APNG?工具呢?
压缩颜色位图
每个单独字形的图像存储为直接的PNG数据。这些PNG数据只允许包含
IHDR
、PLTE
、tRNS
、sRGB
、IDAT
和IEND
。如果存在其他块,则行为未定义。
JFTR, APNG依赖于OS X/macOS和iOS原生支持的三个额外块:
-
acTL
动画控制 -
fcTL
Frame Control -
fdAT
Frame Data
所以,如果我没弄错的话,apng应该在sbix
中逐字工作,而不是在CBDT
中。
APNG似乎只在Firefox和Safari中支持,所以当用作字体字形时,它将是相同的。
我想你已经考虑过这一点,但如果GIF足够,你最好的选择是OpenType SVG。它具有最广泛的支持,并且您可以在SVG中嵌入位图图像:参见此测试字体中的字形0050。
关于OpenType SVG中的非位图动画,不幸的是你不能使用JavaScript动画,并且在离开的路上使用SMIL,你被CSS动画所困……目前不支持Firefox和Edge🙃