实现 IWICBitmapSource

IWICBitmapSource

IWICBitmapSource 对于从应用程序角度处理图像非常重要。 它表示图像源的最高级别的抽象,所有 Windows 图像处理组件 (WIC) 表示图像的接口,包括 IWICBitmapFrameDecodeIWICBitmap 以及 (IWICBitmapScalerIWICBitmapClipperIWICBitmapFlipRotatorIWICFormatConverter) 的所有转换接口都派生自该接口。 在任何特定时间, 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编解码器

Windows 映像组件概述