c# - 如何阅读 PowerPoint VSTO 插件中“图片工具”格式下可用的颜色设置(色调、重新着色)?
问题描述
我正在开发一个在幻灯片中添加图表图像的 VSTO 加载项。图表来自 WinForms DataVisualization.Charting 库。出于性能原因,我们使用它而不是 PowerPoint 原生图表。
我想获得图片格式设置,特别是用户在替换图像时应用的颜色下拉设置,以便感觉相同。
我试过搜索它,甚至试图通过查看 Shape.PictureFormat 属性以及当我们从功能区更改时它如何变化来找到它。
更多信息
在格式图片侧边栏窗格的帮助下,当我们更改颜色下拉列表中的某些内容时,我能够看到正在更新的内容。
例如,颜色饱和度更改饱和度(侧边栏的图片颜色组中的第三个)。色调会改变温度,但
重新着色不会改变任何东西,不幸的是,这是我在更新图像时想要保留的。
经过一些研究,我发现存在一种重新着色方法,但它仅适用于 Office Publisher 应用程序。在深入研究演示文件后,我发现在 slide.xml 文件中的图像标签内还有一个附加标签。
<a:duotone>
<a:prstClr val="black"/>
<a:schemeClr val="accent3">
<a:tint val="45000"/>
<a:satMod val="400000"/>
</a:schemeClr>
</a:duotone>
但仍在寻找如何在运行时获取这些信息并使用它。
解决方案
这是我为其他可能需要它的人使用的解决方案。
要复制图片格式,我们可以在源上使用Shape.PickUp ,在目标上使用Shape.Apply来复制大部分格式。
Shape.PickUp - 复制指定形状的格式。使用 Apply 方法将复制的格式应用到另一个形状。
Shape.Apply - 应用于已使用 PickUp 方法复制的指定形状格式。
推荐阅读
- python - triggering_frequency 只能与写入 BigQuery 的 FILE_LOADS 方法一起使用
- c# - 属性规范中奇怪的歧义(两个 using 指令)
- mimekit - 无法从 MimeMessage 解析 tnef 部分
- php - 在 Imgur PHP 上上传视频
- magento-1.9 - 如何使用 Whatsapp 发送 Mag::Log 错误?
- java - 使现有 API 更加 RESTful
- angular - angular 6 d3 可折叠树仅在数据更改时更新文本
- java - 在 TextureView 上录制来自 rtsp 的视频
- sql-server - DB2 中的查询问题
- actions-on-google - 我的谷歌操作已部署,但在谷歌助手中使用时仍显示测试版本