Использование цветов CMYK в WPF/XAML

есть ли способ указать CMYK цвета непосредственно в документе XAML?

префикс их с символом # создаст цвета RGB, но как указать цвет CMYK?

некоторые замечания:

  1. вопрос не о преобразовании от CMYK до RGB, но использовать реальный CMYK
  2. цель, чтобы созданный 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.