Pregunta

¿Cómo se convierte una imagen de un perfil de color a otro (de pantalla a impresora o de escáner a pantalla)?En Visual C++ usarías la función en ICM.h, ¿hay alguna forma administrada de hacer esto con GDI+?

Necesito usar GDI+, no WPF.Preferiría tener una solución administrada, pero si no está disponible, supongo que PInkvoke será suficiente.

¿Fue útil?

Solución

Hay varias soluciones.

  1. Para GDI+, consulte este artículo en MSDN.
  2. Para WPF (.NET 3.0), consulte la Sistema.Windows.Media espacio de nombres.Hay varias clases diferentes, como la Codificador de mapa de bits, que tienen el concepto de contextodecolor, que "Representa el perfil de color del International Color Consortium (ICC) o Image Color Management (ICM) asociado con una imagen de mapa de bits".

Ambos parecen bastante complejos, por lo que siempre existe la opción de comprar el código de otra persona.Atalasoft DotImage Foto Pro tiene capacidades de configuración de perfil ICC integradas.El código es caro;una licencia de desarrollo cuesta casi 2k.Pero basándome en su participación en la comunidad dotnet, les daría una oportunidad.

Otros consejos

Deberías echar un vistazo a Lcm.Es un sistema de gestión de color, bastante completo, pero escrito en C.puedes usar pinvoke, pero recomendaría el contenedor Managed C++.De hecho, actualmente estoy trabajando en un contenedor administrado alrededor del motor (solo lo básico, conversión de perfil de color, lecturas de laboratorio).Puedo publicar un enlace al código una vez que esté completo.Aunque puede que sea una semana más o menos.

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