Convertendo espaço de cores JPEG (Adobe RGB para sRGB) no Windows (.Net)
-
19-09-2019 - |
Pergunta
Preciso gerar imagens em miniatura e de tamanho médio a partir de fotos grandes.Essas fotos menores serão exibidas em uma galeria online.Muitos dos fotógrafos estão enviando imagens JPEG usando Adobe RGB.Gostaria de usar sRGB para todas as miniaturas e imagens de tamanho médio
Estou usando dotnet (asp.net) e preciso converter de Adobe RGB para sRGB sem perder qualidade.
Solução
Informações básicas:Os arquivos JPG têm 8 bits de vermelho, verde e azul, seja sRGB, Adobe RGB ou RGB simples.O descritor ICC determina o espaço de cores.Às vezes, isso está incorporado no arquivo jpg.Às vezes, há um sinalizador para designar sRGB, tag Exif Colorspace a001 = 1.Não existe um sinalizador padrão para Adobe RGB, mas alguns aplicativos e câmeras usam 65535 (não calibrado) para Adobe RGB na tag exif A001.
Para converter um arquivo jpg de um perfil ICC (espaço de cores) para outro, você pode usar CreateColorTransform para criar uma transformação entre os espaços de cores.Você precisará fornecer o perfil ICC para os espaços de cores de origem (Adobe RGB) e destino (sRGB).
Depois de fazer a transformação, use TranslateBitmapBits para ajustar os pixels.Pode ser mais fácil trabalhar com a imagem como uma DIBSecção.
Pode ser um pouco complexo escrever em .asp, então pode ser mais fácil usar uma biblioteca gráfica que faça isso.
Outras dicas
Dar uma olhada em ColorConvertedBitMap Class.
Você deve usar o imagemagic -perfil Opção, acredito que a opção -Colorspace não o ajudará lá.
convert image.jpg -profile sRGB.icc rgb_image.jpg
Como alternativa, você pode procurar Pequeno mecanismo de gerenciamento de cores
Dê uma olhada em As classes de transformação de bitmap que possui uma amostra curta do uso da classe ColorConvertedBitmap com um perfil.
No lado do servidor, você pode chamar para a ImageMagick e deixá -lo fazer a conversão para você.
Aqui está um link para a opção de linha de comando -Colorspace
Não usei essa opção em particular, mas parece fazer o que você deseja.