Share via


WIC-Enabled 디코더 구현

WIC(Windows 이미징 구성 요소) 디코더를 구현하려면 두 개의 클래스를 작성해야 합니다. 이러한 클래스의 인터페이스는 Windows 이미징 구성 요소 작동 방식의 디코딩 섹션에 설명된 디코더 책임에 직접 해당합니다.

클래스 중 하나는 컨테이너 수준 서비스를 제공하고 IWICBitmapDecoder 인터페이스를 구현합니다. 이미지 형식이 컨테이너 수준 메타데이터를 지원하는 경우 이 클래스에서 IWICMetadataBlockReader 인터페이스도 구현해야 합니다. 더 나은 사용자 환경을 지원하려면 디코더와 인코더 모두에서 IWICBitmapCodecProgressNotification 인터페이스를 지원하는 것이 좋습니다.

구현할 다른 클래스는 프레임 수준 서비스를 제공하고 컨테이너의 각 프레임에 대한 이미지 비트의 실제 디코딩을 수행합니다. 이 클래스는 IWICBitmapFrameDecode 인터페이스 및 IWICMetadataBlockReader 인터페이스를 구현합니다. 원시 형식에 대한 디코더를 작성하는 경우 이 클래스에서 IWICDevelopRaw 인터페이스도 구현합니다. 필요한 인터페이스 외에도 이미지 형식에 대해 최상의 성능을 구현하려면 이 클래스에서 IWICBitmapSourceTransform 인터페이스를 구현하는 것이 좋습니다.

WIC에서 제공하는 개체 중 하나는 이미징 팩터리입니다. 이 개체에서 IWICComponentFactory 인터페이스를 자주 사용하여 다양한 구성 요소를 만듭니다. 자주 사용되므로 디코더 및 인코더 클래스 모두에서 멤버 속성으로 참조를 유지해야 합니다.

IWICImagingFactory* m_pImagingFactory = NULL;
IWICComponentFactory* m_pComponentFactory = NULL;
HRESULT hr;
      
hr = CoCreateInstance(CLSID_WICImagingFactory, NULL,
  CLSCTX_INPROC_SERVER, IID_IWICImagingFactory,
  (LPVOID*) m_pImagingFactory);

hr = m_pImagingFactory->QueryInterface(
  IID_IWICComponentFactory, (void**)&m_pComponentFactory);

개념

Windows 이미징 구성 요소의 작동 방식

디코더 인터페이스

WIC-Enabled CODEC를 작성하는 방법

Windows 이미징 구성 요소 개요

WIC 메타데이터 개요

인코딩 개요