Использование цветов CMYK в WPF/XAML
есть ли способ указать CMYK цвета непосредственно в документе XAML?
префикс их с символом # создаст цвета RGB, но как указать цвет CMYK?
некоторые замечания:
- вопрос не о преобразовании от CMYK до RGB, но использовать реальный CMYK
- цель, чтобы созданный XPS документы (используя систему.Окна.Рфэс.Например, упаковка) см. Цвет как CMYK и генерировать цветовые коды как " ContextColor /swopcmykprofile.icc a,b,c,d, e" не как "#aarrggbb"
Я попытался определить цвета CMYK, используя ColorContext без каких-либо успехов.
2 ответов
OK еще раз! Это оказалось намного проще, чем я думал.: CMYK непосредственно используется в XAML:
<Grid Background="ContextColor file://C:/WINDOWS/system32/spool/drivers/color/EuroscaleCoated.icc 1.0,0.0,0.0,1.0,1.0">
ОК! Я нашел ответ:--5-->
способ, которым WPF использует цветовые модели, -System.Windows.Media.Color
статический конструктор FromValues()
и вводя цветовой профиль:
следующий код, например:
var c = Color.FromValues(
new float[] {1.0f,0.0f,0.0f,0.0f } ,
new Uri("file://C:/ICCProfile.icc", UriKind.Absolute));
создает 100% голубой цвет.
профили можно загрузить из http://www.eci.org/doku.php?id=en:start
я протестировал это решение с помощью XpsDocumentWriter, и я подтверждаю, что он создает правильный цвет CMYK код.
для XAML это просто вопрос построения IValueConverter
это преобразует что-то вроде "~C,M,Y,K" (как #RRGGBB для RGB) в реальные цвет CMYK.