2

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

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

4

3 回答 3

9

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

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

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

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

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

you can with layered color fonts: https://www.glyphsapp.com/tutorials/creating-a-layered-color-font

于 2015-04-19T12:47:31.597 回答
0

字体没有颜色,所以你是对的,你不能在字体文件中强制使用特定的颜色。但是,您可以在使用字体时应用所需的任何颜色。

于 2012-04-27T19:17:12.843 回答