fonts - 字体可以在 TTF 中指定强制背景色吗?

标签 fonts truetype

我正在尝试研究创建我自己的自定义字体。我读了一些书,但由于我对字体一无所知,所以我有一个问题无法找到答案。

你能定义一种字体颜色是静态的吗?例如,我想创建一种字体,其中每个 A 都有蓝色背景,B 有黄色背景等。我所做的阅读似乎表明您需要将字体转换为黑色或白色。我的理解是否正确,不支持在字体中强制使用特定颜色,尤其是背景颜色?

最佳答案

支持取决于您的操作系统/浏览器版本,但 OpenType 1.7 支持多色字体,并且有多个选项。

前两个具有不受设备影响的可扩展性优势,但它们缺乏精细的像素级细节。后两者的优点是可以在图像中提供精细的细节,但是当以非预期尺寸使用时,它们看起来像素化或模糊。

Roel Nieskens 在这里写了一篇不错的文章,其中包括一个测试页面,显示您当前的浏览器对不同方法的支持:http://pixelambacht.nl/2014/multicolor-fonts/

OpenType 1.6 规范不直接支持多色字体,但您仍有选择...

  • 创建所有字形的图集纹理(基本上是与 CSS Sprite 结合使用的大位图)。游戏使用这种方法,但需要注意的是它们不可扩展 - 无论如何也不是没有像素化。
  • 叠加多种 OpenType 字体的文本。多层 OpenType 是图形设计师使用的一种方法(例如在 In-Design 中)。创建多种字体有点奇怪,每种颜色一种,但它确实有效。您可以将 float 跨度彼此半透明地叠加。
  • 通过 InkScape 使用 SVG 字体(在支持它的浏览器子集中)。 SVG 字体可缩放并支持多种颜色(实际上几乎支持 SVG 所做的任何事情),但它们的支持有限:Opera 9+ 或 Chrome 4+,但不支持 IE10 或 FF。
  • 直接使用 SVG 组件。它不是真正的“SVG 字体”,但您仍然可以通过编程将每个字符与其相应的 SVG 部分相关联(假设我们在 ASCII 范围内,而不是整个 Unicode 中的任何字符)。当前所有浏览器都支持 SVG:Opera9、IE10、FF3、Chrome4、Safari3.2。

关于fonts - 字体可以在 TTF 中指定强制背景色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10219933/

相关文章:

css - 元素符号列表项总是缩进 1.8em 吗?

css - 在 Windows XP 中显示 Unicode 符号。也许网络字体?

android - 在没有 root 的情况下将字体安装到 android 平台

iOS 8 自定义 UIFont 不会出现在 fontFamily 列表中,即使它显示在 IB 中

java - 将 truetype 字体文件与 Font.createFont 一起使用时文本规范错误

Java TrueType字体

css - 如何确定图标字体中字符的转义序列?

Mac 上的 R 错误 : "family ' Times New Roman' not included in postscript() device"

fonts - 栅格化 TrueType 字符字形数据

python - 如何使用 TTX/fontTools 重命名 TrueType 字体中的字形?