Suporte para IWICDevelopRaw
Para permitir que os aplicativos deem 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étodo IWICDevelopRaw::SetRotation . Esse método define o ângulo de rotação desejado para a saída de chamadas subsequentes para CopyPixels.
- Método IWICBitmapSourceTransform::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 as configurações de IWICDevelopRaw podem ser persistidas entre instâncias do objeto decodificador.
- IWICBitmapSourceTransform::CopyPixels aplica-se 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:
- As chamadas para IWICBitmapFrameDecode::CopyPixels devem aplicar uma rotação de 25 graus (ou seja, apenas o valor especificado em IWICDevelopRaw).
- As chamadas para IWICBitmapSourceTransform::CopyPixels com uma quantidade dstTransform de 90 resultam em uma rotação de 115 graus (25 + 90).
- Novamente, somente a rotação de 25 graus especificada por meio de IWICDevelopRaw::SetRotation pode ser persistida.
No Windows Vista, os métodos IWICBitmapFrameDecode::GetThumbnail e IWICBitmapDecoder::GetPreview permitem que os chamadores obtenham miniaturas inseridas e imagens de visualização, 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 baixo desempenho no Windows Explorer e 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 estão fazendo controle interativo das configurações de processamento.
As chamadas para IWICDevelopRaw::SetRenderMode determinarão quais chamadas subsequentes para IWICBitmapFrameDecode::CopyPixels retornam (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