Aplicar um Perfil de Cor ICC para uma imagem em C# (Dotnet)
-
09-06-2019 - |
Pergunta
Como converter uma imagem a partir de um perfil de cor para outro (tela para a impressora ou um scanner para a tela).No Visual C++ você iria usar a função na ICM.h, existe uma forma de gestão para fazer isso com o GDI+?
Eu preciso usar o GDI+, não WPF.Eu prefiro ter uma solução gerenciada, mas se ele não estiver disponível, eu acho que PInkvoke terá que ser suficiente.
Solução
Há um número de soluções.
- Para o GDI+, confira este artigo no MSDN.
- Para WPF (.NET 3.0), consulte o Do sistema.O Windows.Media espaço de nomes.Há um número de diferentes classes, tais como o BitmapEncoder, que tem o conceito de um ColorContext, que "Representa o International Color Consortium (ICC) ou Gerenciamento de Cores de Imagem (ICM) perfil de cor que está associada a uma imagem de mapa de bits."
Ambos estes parecem bastante complexo, de modo que há sempre a opção de comprar de outra pessoa de código.Atalasoft do DotImage Foto Pro tem perfil ICC definição de recursos.O código é caro;um dev de licença é quase 2k.Mas, com base em sua participação no dotnet comunidade, eu gostaria de lhes dar um giro.
Outras dicas
Você deve ter um olhar para O Lcms.Um gerenciamento de cores sistema, bastante completa, mas escrito em C.você pode usar pinvoke, mas eu recomendaria Managed C++ wrapper.Eu realmente estou atualmente trabalhando em um wrapper gerenciado em todo o motor (só o básico, cor do perfil de conversão, laboratório de leituras).Eu posso postar um link para o código, depois de eu completar.Ele pode ser de uma semana ou assim embora.