Pregunta

¿Hay alguna forma de especificar? Cmyk ¿Coloros directamente en un documento XAML?

El prefijo con el personaje # creará colores RGB, pero ¿cómo especificar un color CMYK?

Algunas notas:

  1. La pregunta es No se trata de convertir De CMYK a RGB pero para usar CMYK real
  2. El propósito es permitir generar XPS Documentos (usando System.windows.xps.packaging, por ejemplo), vea el color como CMYK y genere códigos de color como "contextcolor /swopcmykprofile.icc A, B, C, D, E" no como "#aarrggbb"

He tratado de definir los colores CMYK usando ColorContext sin ningún éxito.

¿Fue útil?

Solución

¡Ok de nuevo! Resultó ser mucho más fácil de lo que yo: CMYK se puede usar directamente en XAML:

<Grid Background="ContextColor file://C:/WINDOWS/system32/spool/drivers/color/EuroscaleCoated.icc 1.0,0.0,0.0,1.0,1.0">

Otros consejos

¡OK! Encontré la respuesta:

La forma en que WPF usa modelos de color es por System.Windows.Media.ColorConstructor estático FromValues() e introducir un perfil de color:

El siguiente código, por ejemplo:

var c = Color.FromValues(
               new float[] {1.0f,0.0f,0.0f,0.0f } , 
               new Uri("file://C:/ICCProfile.icc",  UriKind.Absolute));

Crea un color 100% cian.

Los perfiles se pueden descargar desde http://www.eci.org/doku.php?id=en:start

Probé esta solución con XPSDocumentWriter y confirmo que crea el código de color CMYK correcto.

Para Xaml es solo la cuestión de construir un IValueConverter que convierte algo como "~ c, m, y, k" (como #rrggbb para rgb) a un real Color cmyk.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top