繁体   English   中英

DrawingML 颜色中的 lumMod/lumOff 和 tint/shade 有什么区别?

[英]What's the difference between lumMod/lumOff and tint/shade in DrawingML colors?

使用<a:lumMod><a:lumOff>标签在 DrawingML 中设置阴影或色调(例如分别深 25%,浅 40%)与使用<a:lumMod>执行似乎产生类似结果的操作之间有什么<a:lumOff> <a:shade><a:tint>标签?

在 PowerPoint 中,从调色板选择器中选择“Accent 1, 40% Lighter”颜色会生成如下 XML:

<a:rPr>
  <a:solidFill>
    <a:schemeClr val="accent1">
      <a:lumMod val="60000"/>
      <a:lumOff val="40000"/>
    </a:schemeClr>
  </a:solidFill>
</a:rPr>

像这样使用 API 方法 Brightness 会生成相同的 XML:

TextRange.Font.Color.Brightness = 0.4

像这样使用 API 方法 TintAndShade:

TextRange.Font.Color.TintAndShade = 0.4

生成此 XML:

<a:rPr>
  <a:solidFill>
    <a:schemeClr val="accent1">
      <a:tint val="60000"/>
    </a:schemeClr>
  </a:solidFill>
</a:rPr>

并产生稍浅的颜色。

我应该如何理解发生了什么? 为什么有两种方法如此相似,为什么它们的行为不同?

当颜色是原始主题颜色的阴影时,lumMod 属性是此处显示的唯一一个标签。 当颜色为原始颜色时,标签出现在标签之后。

<a:rPr>
  <a:solidFill>
    <a:schemeClr val="accent1">
      <a:lumMod val="60000"/>
      <a:lumOff val="40000"/>
    </a:schemeClr>
  </a:solidFill>
</a:rPr>

这意味着您可以通过 valaccent1 从 ColorTheme 获取颜色(假设为 RGb(91, 155, 213))。 然后你必须改变这种颜色的亮度。 您可以将其转换为 HSL(208.5°, 59.2, 59.6) 并修改亮度 = (luminance/100)*(lumMod/100_000) + (lumOff/100_000) 获取新的 HSL 颜色 (HSL(208.5°, 59.2, 75.7) - > RGB(156, 195, 230)

对于阴影,等式是亮度 * %tint。 对于色调,等式是亮度 * %tint + (1-%tint)。 (请注意,1-%tint 等于 DrawingML 中的 lumOff 值。)

检查这篇文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM