Реализация IWICBitmapSource

IWICBitmapSource

IWICBitmapSource важен для работы с изображениями с точки зрения приложения. Он представляет абстракцию самого высокого уровня для источника изображения, и все интерфейсы компонента обработки изображений Windows (WIC), которые представляют изображение, включая IWICBitmapFrameDecode, IWICBitmap и все интерфейсы преобразования (IWICBitmapScaler, IWICBitmapClipper, IWICBitmapFlipRotator и IWICFormatConverter), являются производными от него. В любой момент времени объект 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, а также другие методы в IWICBitmapFrameDecode, который является производным от IWICBitmapSource.

Reference

IWICBitmapDecoder

IWICBitmapSource

IWICBitmapFrameDecode

Основные понятия

Реализация IWICBitmapCodecProgressNotification (декодер)

Реализация IWICBitmapFrameDecode

Написание кодека WIC-Enabled

Общие сведения о компоненте обработки образов Windows