Поделиться через


Реализация 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.

Справочник

IWICBitmapDecoder

IWICBitmapSource

IWICBitmapFrameDecode

концептуальные

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

Реализация класса IWICBitmapFrameDecode

Как написать WIC-Enabled кодек

Обзор компонента Windows Imaging