Unicode 6.0添加了几个字符,其中的描述表明这些字符应该以特定颜色呈现:
GREEN APPLE U + 1F34F
BLUE HEART U + 1F499
PURLE HEART U + 1F49C
GREEN BOOK U + 1F4D7
ORANGE BOOK U + 1F4D9
大红圈U + 1F534
大蓝圈U + 1F535
大型橙色钻石U + 1F536
小蓝钻+ 1F539
UP-POINTING RED TRIANGLE U + 1F53A
我原以为字体符号总是灰度。
unicode作者是否预见到这些可能会以不同的颜色呈现? 在官方unicode.org PDF(http://www.unicode.org/charts/PDF/U1F300.pdf)中,这些仅被描述为具有不同类型的交叉影线。
是否有任何当前机制允许特定字符以特定颜色呈现,仅基于其代码点,而不是任何其他富文本格式? (例如,TrueType或OpenType字体文件中的颜色属性)
答案 0 :(得分:29)
来自Unicode FAQ: Emoji and Dingbats,加粗地雷:
问:名称指定颜色的字符怎么办?
答:核心表情符号集中的某些字符的名称包含颜色词,例如BLUE HEART或ORANGE BOOK。 名称中的这些颜色词并不意味着必须如何呈现角色;它们仅用于帮助识别核心表情符号集中的相应字符。甚至像BLACK MEDIUM SQUARE或WHITE MEDIUM SQUARE这样的符号名称也不表示相应的字符必须分别以黑色或白色呈现;相反,黑色和白色的使用通常只是对比填充形状与轮廓形状,或者是较暗的颜色填充与较浅的颜色填充。 [PE]
当时mailing lists对于这些应该用颜色命名,还是没有引用颜色的通用名称,以及这是否是一个不好的先例,有很多争论。 Emoji Symbols: Background Data包括“旧名称”,例如APPLE-1而不是RED APPLE和BOOK-3,而不是ORANGE BOOK。
最终名称使用这一原则:
具有固有颜色的符号应该具有这种颜色 名称,除非名称所表示的实体标识了颜色 无论如何(例如,BANANA是唯一的黄色,因此 不需要被称为YELLOW BANANA,而RED APPLE必须是 如此命名,也有绿苹果)。
答案 1 :(得分:5)
Unicode 6.1具有通过指定变体选择器(U + FE0x)来更改同一个unicode代码点的字形的功能。
例如,左指三角形(@“\ U000025C0”)可以通过添加“\ U0000FE0F”(默认情况下在Mac OS X 10.8上)并通过添加“\ U0000FE0E”作为后缀而不着色来着色。 (@ “\ U000025C0 \ U0000FE0E”)。
答案 2 :(得分:4)
我不知道彩色字体有任何标准机制,但显然有彩色字体。例如,iOS和OS X中的表情符号字体.OS X上任何文本视图中的表情符号字符将生成彩色符号,并且它们不会受到选择文本颜色的影响。这些表情符号甚至出现在Terminal.app。
中
(来自this页。)
答案 3 :(得分:4)
来自OpenType规范中的The OpenType Font File:
与颜色字体相关的表
- COLR:颜色表
- CPAL:调色板表
- CBDT:彩色位图数据
- CBLC:彩色位图位置数据
- sbix:标准位图图形
- SVG:SVG(可缩放矢量图形)表
简而言之,
CBDT + CBLC包含彩色位图(PNG中)。它们由Google提出。
sbix包含彩色位图(JPG,PNG或TIFF)。它由Apple提出。
COLR为每个字形定义一个或多个伴随的颜色字形(矢量格式),当它们重叠时,它们会创建最终的彩色字形。 CPAL定义了几种颜色主题(深灰色,白底黑暗......),因为COLR仅仅是调色板图像。 COLR + CPAL由Microsoft提出。
SVG由Mozilla和Adobe提出。它可以与CPAL一起使用。
FreeType(由Android,macOS和iOS使用)支持自2.5和2.5.1版以来的CBDT / CBLC和sbix。 DirectWrite(由Windows使用)支持上述所有四种。