다음을 통해 공유


WIC-Enabled 인코더 구현

소개

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

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

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

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

참조

IWICBitmapEncoder

개념

IWICDevelopRaw 구현하기

인코더 인터페이스

WIC-Enabled CODEC 작성법

Windows 이미징 구성 요소 개요