Suporte para IWICDevelopRaw
Para permitir que os aplicativos ofereçam suporte ao processamento RAW, os autores de codec são altamente incentivados a implementar todos os parâmetros de IWICDevelopRaw. Para o Windows 7, o WIC (Componente de Imagem do Windows) exigirá suporte para todos os IWICDevelopRaw. Se o formato de arquivo não der suporte a todos esses parâmetros, você deverá revisar o formato do arquivo de imagem.
Para habilitar o processamento RAW básico em aplicativos, os codecs devem dar suporte a ajustes de exposição (ExposureCompensationSupport) e cor (como KelvinWhitePointSupport e TintSupport). Além disso, a saída para espaços de cores específicos e formatos de pixel é altamente recomendada. O suporte para outros ajustes é, naturalmente, incentivado e é necessário para o Windows 7.
O codec RAW deve fornecer suporte básico para rotação de imagem e visualização rápida. A rotação pode ser especificada de duas maneiras distintas:
- métodoIWICDevelopRaw ::setRotation. Esse método define o ângulo de rotação desejado para a saída de chamadas subsequentes para CopyPixels.
- IWICBitmapSourceTransform ::método CopyPixels. O chamador pode definir a opção dstTransform para indicar o ângulo de rotação desejado.
Essas duas abordagens diferem das seguintes maneiras:
- Somente configurações de IWICDevelopRaw podem ser mantidas entre instâncias do objeto decodificador.
- IWICBitmapSourceTransform ::CopyPixels se aplica somente a essa chamada específica; não há persistência de qualquer tipo.
- IWICDevelopRaw fornece um controle muito mais refinado em rotação. IWICBitmapSourceTransform :: CopyPixels é restrito a incrementos de 90 graus.
Se a rotação for especificada em IWICDevelopRaw e IWICBitmapSourceTransform, o efeito de rotação será cumulativo. Por exemplo, se IWICDevelopRaw especificar uma rotação de 25 graus e IWICBitmapSourceTransform especificar uma rotação de 90 graus, o seguinte deverá acontecer:
- Chamadas para IWICBitmapFrameDecode:: CopyPixels deve aplicar uma rotação de 25 graus (ou seja, apenas a quantidade especificada em IWICDevelopRaw).
- Chamadas para IWICBitmapSourceTransform::CopyPixels com uma quantidade dstTransform de 90 e, em seguida, resultar em uma rotação de 115 graus (25 + 90).
- Novamente, somente a rotação de 25 graus especificada por meio de IWICDevelopRaw:: de SetRotation podem ser persistentes.
No Windows Vista, o IWICBitmapFrameDecode::GetThumbnail e IWICBitmapDecoder::métodos getPreview permitem que os chamadores obtenham miniaturas inseridas e visualizar imagens, respectivamente. Elas destinam-se a retornar visualizações pré-calculadas e miniaturas do fluxo de arquivos de imagem. Gerar visualizações ou miniaturas "em tempo real" resulta em um desempenho ruim no Windows Explorer e no Visualizador de Fotos. O codec também deve fornecer uma maneira de retornar uma imagem de resolução de tela atualizada rapidamente quando os usuários estiverem fazendo controle interativo das configurações de processamento.
Chamadas para IWICDevelopRaw:: SetRenderMode determinarão quais chamadas subsequentes para IWICBitmapFrameDecode::o retorno do CopyPixels (favorecendo velocidade ou qualidade). Além disso, a interface IWICBitmapSourceTransform pode ser usada para determinar se o downsampling é necessário e pode aumentar o desempenho quando pode ser aplicado. A fidelidade de cores de todas as imagens deve ser comparável. Quando são feitas alterações nas configurações de processamento, todas essas renderizações devem refletir as alterações.
Tópicos relacionados
-
Conceitual
-
Diretrizes do WIC para formatos de imagem RAW da câmera
-
como escrever uma codec WIC-Enabled