GstBaseTextOverlay 颜色值的格式 属性

Format of values for GstBaseTextOverlay's color property

The GstBaseTextOverlay object used for GStreamer's Pango-based plugins (textoverlay, clockoverlay, etc.) has a color property. Its documentation描述如下:

“color” guint

Color of the rendered text.

Flags : Read / Write

Default value : -1

一个guint是一个无符号的32位整数,但是这里指定的默认值(-1)是有符号的。颜色分量的顺序也是未指定的(大概是红、绿、蓝、alpha 各分配了 8 位)。

虽然这些插件使用 Pango,但在 Pango 中颜色是使用 the PangoColor struct 表示的(它包含三个 guint16 值,红色、绿色和蓝色各一个),这不会出现在 GStreamer 的上下文中使用。

GstBaseTextOverlaycolor 属性 的值格式是什么?

颜色分量顺序为 ARGB,或者以十六进制表示,0xAARRGGBB。例如:

  • 0xFF000000是不透明的黑色
  • 0xFF00FFFF是不透明的青色(绿色和蓝色)
  • 0x80FF0000 是半透明的红色(~50% 不透明度,因为 0x80 = 128,大约是 255 的一半)
  • 0x00000000透明

这在the description of the outline-color property中提到:

“outline-color” guint

Color to use for outline the text (big-endian ARGB).

Flags : Read / Write

Default value : -16777216

考虑到两个属性都使用 guint 类型,默认值显示为有符号整数很奇怪,但在 big-endian 形式中,默认值对应于以下内容:

  • color 的默认值:-1 = 0xFFFFFFFF(白色)
  • outline-color 的默认值:-16777216 = 0xFF000000(黑色)