在DrawingML颜色中lumMod / lumOff和色调/阴影有什么区别?

时间:2013-11-10 04:11:29

标签: powerpoint openxml powerpoint-vba drawingml

使用<a:lumMod><a:lumOff>标签在DrawingML中设置阴影或色调(例如,分别为25%更暗,40%更轻)之间有什么区别,并且做什么似乎产生与<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​​方法这样的亮度产生相同的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>

并产生稍浅的颜色。

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

1 个答案:

答案 0 :(得分:3)

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

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

这意味着你可以通过val accent1从ColorTheme获得颜色(让我们为RGb(91,155,213))。 然后你必须改变这种颜色的亮度。你可以用HSL转换它(208.5°,59.2,59.6) 并修改亮度=(亮度/ 100)*(lumMod / 100_000)+(lumOff / 100_000) 获得新的HSL颜色(HSL(208.5°,59.2,75.7) - > RGB(156,195,230)

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

查看this文章。