Compartilhar via


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.

Conceitual

visão geral do componente de imagem do Windows

Diretrizes do WIC para formatos de imagem RAW da câmera

como escrever uma codec WIC-Enabled