实现 IWICBitmapSource

IWICBitmapSource

IWICBitmapSource 对于从应用程序角度处理图像非常重要。 它表示图像源的最高级别抽象, 以及表示图像的所有Windows映像组件 (WIC) 接口,包括 IWICBitmapFrameDecodeIWICBitmap 以及 IWICBitmapScaler、IWICBitmapClipperIWICBitmapFlipRotatorIWICFormatConverter) 派生的所有转换 (接口。 在任何特定时间, IWICBitmapSource 对象都可能或可能不受内存中实际位图的支持。 这允许应用程序高效处理,因为可以将图像作为抽象处理。 转换操作可以在转换管道中链接,而无需消耗内存资源,直到应用程序准备好呈现或打印图像,此时它会在最终转换上调用 CopyPixels 方法,以获取应用所选转换的图像内存中的位图。

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 );
}

从编解码器的角度来看, IWICBitmapSource 方法在帧解码器对象上实现。 这些方法在实现 IWICBitmapSource 中进行了介绍,以及从 IWICBitmapSource 派生的 IWICBitmapFrameDecode 上的其他方法。

参考

IWICBitmapDecoder

IWICBitmapSource

IWICBitmapFrameDecode

概念性

实现 IWICBitmapCodecProgressNotification (解码器)

实现 IWICBitmapFrameDecode

如何编写 WIC-Enabled CODEC

Windows映像组件概述