Feature Completeness: Recommended Interfaces

The following table lists the Microsoft Windows Imaging Component (WIC) intefaces RAW codecs should implement.

Interface Required for Description
IWICBitmapDecoder Decoders

Represents the starting point for decoding an image file. Provides access to container-level properties like thumbnails, frames, and palette.

IWICBitmapFrameDecode Decoders

Represents a specific image frame within the container that provides access to frame-level properties. This is the interface that decodes the actual image bits.

IWICMetadataBlockReader Decoders

Required for enumerating and iterating through metadata blocks and invoking the appropriate metadata readers when reading from an image file.

Note: If the RAW container format is TIFF compatible or uses standard IFDs or IRBs to store EXIF or XMP metadata, codec authors can choose to invoke the built-in metadata readers rather than writing their own.

IWICBitmapSourceTransform Decoders

Allows the caller to specify desired scaling, cropping, rotation, or pixel format for the decoded image, which can significantly improve decoder performance. For example, Microsoft's JPEG and Wireless Datagram Protocol (WDP) decoders use a pyramid optimization scheme to achieve faster decoding when the target bitmap is smaller than the source bitmap. Windows Vista (and later) will attempt to use this interface to extract a "fast" preview from a RAW image whenever the embedded preview is missing or less than 1,024 pixels in its largest dimension.

IWICDevelopRaw Decoders

Required for RAW formats. Exposes parameters that are specific to RAW image processing. RAW codecs should support as many of these parameters as apply to the codec.

IWICBitmapEncoder Encoders

Represents the starting point for encoding an image file. This interface is used for setting container-level properties, such as thumbnails, frames, and palette. It is also required to invoke a metadata writer to enable metadata persistence to the image file. For these reasons, this interface is necessary even if encoding the primary bitmap to the RAW format is not supported.

IWICBitmapFrameEncode Encoders

Represents a specific image frame within the container. This interface is used to encode the actual image bits and to set per-frame metadata and properties.

IWICMetadataBlockWriter Encoders

Required for iterating through metadata blocks and invoking the appropriate metadata writers when serializing an image file.

Note: If the RAW container format is TIFF-compatible, codec authors can choose to invoke the built-in metadata writers rather than writing their own.

 

See Also

Conceptual

Windows Imaging Component Overview

WIC Guidelines for Camera RAW Image Formats

How to Write a WIC-Enabled CODEC

Send comments about this topic to Microsoft

Build date: 11/11/2009