PowerPoint ThemeColorScheme 派生 colors/shades
PowerPoint ThemeColorScheme derived colors/shades
正在研究 VSTO/PowerPoint 处理颜色的方式,我正在寻找一种从配色方案中获取颜色的方法(见图,有趣的部分用红色框起来)。
我尝试了 TintAndShade
和 RGB 中的各种其他转换 space,但我似乎无法重现 PowerPoint 为生成这些颜色所做的工作。有没有人成功获得这些颜色(当然,以编程方式,并且独立于实际使用的配色方案)?
非常感谢任何帮助!
提前致谢,
eDude
PowerPoint 对象模型没有为此提供任何东西。
您可以尝试使用 OfficeTheme.ThemeColorScheme property which gets a ThemeColorScheme object that represents the color scheme of a Microsoft Office theme. The ThemeColorScheme.Colors 方法获取 Microsoft Office 主题配色方案中的颜色。
我在 this article 中找到了答案。
本质上,转换应用于 HSL space (Hue/Saturation/Lightness)。从 RGB 到 HSL 的转换实现起来有些乏味,但却是一个简单的数学运算。
主要 ThemeColorScheme
颜色从 RGB 转换为 HSL 后,以下转换将从主要颜色变为不同的阴影:
L = L*Abs(fraction) + (fraction > 0 ? 1 : 0) * (1-fraction)
其中 fraction
是工具提示中给出的百分比值。从 HSL 转换回 RGB,您将获得图片中的颜色。
根据我的实验,用于构建 PowerPoint 的分数取决于主色的 L 值。我对限制的最佳猜测是:
- 对于 L < 0.8 的颜色,分数为 0.2、0.4、0.6、-0.75 和 -0.5
- 对于 L >= 0.8 但不是 1.0 的颜色,分数为 -0.9、-0.75、-0.5、-0.25 和 -0.1
- 对于白色,分数为 -0.95、-0.85、-0.75、-0.65 和 -0.5
有了它,我可以通过编程方式构建整个 PowerPoint 调色板。
正在研究 VSTO/PowerPoint 处理颜色的方式,我正在寻找一种从配色方案中获取颜色的方法(见图,有趣的部分用红色框起来)。
我尝试了 TintAndShade
和 RGB 中的各种其他转换 space,但我似乎无法重现 PowerPoint 为生成这些颜色所做的工作。有没有人成功获得这些颜色(当然,以编程方式,并且独立于实际使用的配色方案)?
非常感谢任何帮助! 提前致谢, eDude
PowerPoint 对象模型没有为此提供任何东西。
您可以尝试使用 OfficeTheme.ThemeColorScheme property which gets a ThemeColorScheme object that represents the color scheme of a Microsoft Office theme. The ThemeColorScheme.Colors 方法获取 Microsoft Office 主题配色方案中的颜色。
我在 this article 中找到了答案。
本质上,转换应用于 HSL space (Hue/Saturation/Lightness)。从 RGB 到 HSL 的转换实现起来有些乏味,但却是一个简单的数学运算。
主要 ThemeColorScheme
颜色从 RGB 转换为 HSL 后,以下转换将从主要颜色变为不同的阴影:
L = L*Abs(fraction) + (fraction > 0 ? 1 : 0) * (1-fraction)
其中 fraction
是工具提示中给出的百分比值。从 HSL 转换回 RGB,您将获得图片中的颜色。
根据我的实验,用于构建 PowerPoint 的分数取决于主色的 L 值。我对限制的最佳猜测是:
- 对于 L < 0.8 的颜色,分数为 0.2、0.4、0.6、-0.75 和 -0.5
- 对于 L >= 0.8 但不是 1.0 的颜色,分数为 -0.9、-0.75、-0.5、-0.25 和 -0.1
- 对于白色,分数为 -0.95、-0.85、-0.75、-0.65 和 -0.5
有了它,我可以通过编程方式构建整个 PowerPoint 调色板。