在 WPF/XAML 中使用 CMYK 颜色
有没有办法直接在 XAML 文档中指定 CMYK 颜色?
在它们前面添加 # 字符将创建 RGB 颜色,但如何指定 CMYK 颜色?
一些注意事项:
- 问题不是从 CMYK 转换为 RGB,而是使用真正的 CMYK
- 目的是允许生成 XPS 文档(使用 System.Windows.Xps.Packaging例如)将颜色视为 CMYK 并将颜色代码生成为“ContextColor /swopcmykprofile.icc a,b,c,d,e”而不是“#aarrggbb”
我尝试使用 ColorContext 定义 CMYK 颜色,但没有成功。
Is there any way to specify CMYK colours directly in a XAML document?
prefixing them with # character will create RGB colours, but how to specify a CMYK colour?
Some notes:
- The question is NOT about converting from CMYK to RGB but to use real CMYK
- The purpose is to allow generated XPS documents (using System.Windows.Xps.Packaging for example) see the colour as CMYK and generate colour codes as "ContextColor /swopcmykprofile.icc a,b,c,d,e" not as "#aarrggbb"
I have tried to define CMYK colours by using ColorContext without any success.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
再次确定!
事实证明,这比我想象的要容易得多:
CMYK 可直接在 XAML 中使用:
OK again!
It turned out to be much more easier than what I though:
CMYK is directly usable in XAML:
好的!我找到了答案:
WPF使用颜色模型的方式是通过
System.Windows.Media.Color
的静态构造函数FromValues()
并引入颜色配置文件:以下代码,例如:
创建 100% 青色。
配置文件可以从 http://www.eci.org/doku.php? id=en:start
我使用 XpsDocumentWriter 测试了此解决方案,并确认它创建了正确的 CMYK 颜色代码。
对于 XAML,只需构建一个
IValueConverter
即可将“~C,M,Y,K”(如 RGB 的 #RRGGBB)之类的内容转换为真实 CMYK颜色。OK! I found the answer:
The way that WPF uses colour models is by
System.Windows.Media.Color
's static constructorFromValues()
and introducing a colour profile:The following code, for example:
creates a 100% Cyan colour.
Profiles can be downloaded from http://www.eci.org/doku.php?id=en:start
I tested this solution with XpsDocumentWriter and I confirm that it creates the correct CMYK colour code.
For XAML it is just the matter of building an
IValueConverter
that converts something like "~C,M,Y,K" (as #RRGGBB for RGB) to a real CMYK colour.