Implementando IWICBitmapSource

Iwicbitmapsource

IWICBitmapSource é importante para trabalhar com imagens da perspectiva do aplicativo. Ele representa a abstração de nível mais alto para uma fonte de imagem e todas as interfaces wic (componente de imagem do Windows) que representam uma imagem, incluindo IWICBitmapFrameDecode, IWICBitmap e todas as interfaces de transformação (IWICBitmapScaler, IWICBitmapClipper, IWICBitmapFlipRotator e IWICFormatConverter) são derivadas dela. Em qualquer momento específico, um objeto IWICBitmapSource pode ou não ser apoiado por um bitmap real na memória. Isso permite o processamento muito eficiente por um aplicativo, pois uma imagem pode ser tratada como uma abstração. As operações de transformação podem ser encadeadas em um pipeline de transformação sem consumir recursos de memória até que o aplicativo esteja pronto para renderizar ou imprimir a imagem, momento em que invoca o método CopyPixels na transformação final para obter um bitmap na memória da imagem com as transformações selecionadas aplicadas.

interface IWICBitmapSource : IUnknown
{
   // Required methods
   HRESULT GetSize ( UINT *puiWidth, UINT *puiHeight );
   HRESULT GetPixelFormat ( WICPixelFormatGUID *pPixelFormat );
   HRESULT GetResolution ( double *pDpiX, double *pDpiY );
   HRESULT CopyPixels ( const WICRect *prc,
      UINT cbStride,
      UINT cbBufferSize, 
      BYTE *pbBuffer );
   // Optional method
   HRESULT CopyPalette ( IWICPalette *pIPalette );
}

Do ponto de vista do codec, os métodos IWICBitmapSource são implementados no objeto de decodificador de quadro. Esses métodos são descritos em Implementando IWICBitmapSource, juntamente com os outros métodos em IWICBitmapFrameDecode, que é derivado de IWICBitmapSource.

Referência

Iwicbitmapdecoder

Iwicbitmapsource

Iwicbitmapframedecode

Conceitual

Implementando IWICBitmapCodecProgressNotification (Decoder)

Implementando IWICBitmapFrameDecode

Como escrever uma WIC-Enabled CODEC

Visão geral do componente de imagem do Windows