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.

Foi útil?

Solução

Há um número de soluções.

  1. Para o GDI+, confira este artigo no MSDN.
  2. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top