다음을 통해 공유


WIC-Enabled 인코더 구현

소개

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

클래스 중 하나는 컨테이너 수준 서비스를 제공하고 컨테이너 내에서 개별 이미지 프레임의 serialization을 관리합니다. 이 클래스는 IWICBitmapEncoder 인터페이스를 구현합니다. 이미지 형식이 컨테이너 수준 메타데이터를 지원하는 경우 이 클래스에서 IWICMetadataBlockWriter 인터페이스도 구현해야 합니다.

다른 클래스는 프레임 수준 서비스를 제공하고 컨테이너의 각 프레임에 대한 이미지 비트의 실제 인코딩을 수행합니다. 또한 각 프레임에 대한 메타데이터 블록을 반복하고 적절한 메타데이터 기록기에 블록을 직렬화하도록 요청합니다. 이 클래스는 IWICBitmapFrameEncode 인터페이스 및 IWICMetadataBlockWriter 인터페이스를 구현합니다. 이 클래스에는 컨테이너 수준 클래스가 인스턴스화 시 초기화하는 IStream 멤버가 있어야 하며, Commit 메서드는 프레임 데이터를 직렬화합니다.

원시 형식과 같은 경우에 코덱 작성자는 원시 파일의 목적은 카메라에서 나온 것과 정확하게 센서 데이터를 포함하는 것이므로 애플리케이션을 원시 형식으로 인코딩하거나 다시 인코딩할 수 없도록 할 수 있습니다. 코덱 작성자가 인코딩을 사용하도록 설정하지 않으려는 경우에도 메타데이터 추가를 사용하도록 설정하기 위해 기본적인 인코더를 구현해야 합니다. 이 경우 인코더는 메타데이터를 작성하는 데 필요한 메서드만 지원해야 하며 디코더에서 그대로 이미지 비트를 복사할 수 있습니다.

참조

IWICBitmapEncoder

개념

IWICDevelopRaw 구현

인코더 인터페이스

WIC-Enabled CODEC를 작성하는 방법

Windows 이미징 구성 요소 개요