Schnittstellenmethode – Anforderungen

Nicht jede Methode auf jeder Schnittstelle muss über eine -Implementierung verfügen. Einige Codecs verfügen beispielsweise über globale Metadaten, Miniaturansichten oder Farbkontexte, während andere Codecs diese nur pro Frame bereitstellen. Wenn Codecautoren diese nur pro Frame bereitstellen, müssen sie nur get / SetThumbnail oder ColorContexts implementieren oder die GetMetadataQueryReader- oder GetMetadataQueryWriter-Methoden für DEN IWICBitmapFrameDecode und DEN IWICBitmapFrameEncode anstelle von IWICBitmapDecoder und IWICBitmapEncoderimplementieren. Ebenso verwenden einige Codecs keine indizierten Formate und sind daher nicht erforderlich, um die Methoden CopyPalette und SetPalette zu implementieren. Diese Methoden sind daher optional und bleiben dem Ermessen des Codec-Erstellers überlassen. Die meisten anderen Methoden sind erforderlich.

Für Windows 7 sind Get / SetPreview und Get / SetThumbnail erforderlich und müssen entweder für die Klassen auf Enthalten-Ebene oder für die Klassen auf Frameebene implementiert werden. Wenn Ihr Bilddateiformat keine Vorschauen oder Miniaturansichten an einem dieser Speicherorte unterstützt, sollten Sie das Bilddateiformat überarbeiten, um eine solche Unterstützung zu bieten.

Wenn eine Methode nicht implementiert ist, ist es wichtig, einen entsprechenden Fehler zurück zu geben, damit der Aufrufer feststellen kann, dass das angeforderte Feature nicht unterstützt wird. Wenn Codec-Autoren beispielsweise keine Miniaturansichten auf Containerebene unterstützen, sollten sie WINCODEC _ ERR _ CODECNOTHUMBNAIL zurückgeben, wenn eine Anwendung GetThumbnailaufruft, und wenn sie keine Palette haben, sollten sie WINCODEC _ ERR _ PALETTEUNAVAILABLE zurückgeben. Wenn kein geeigneter WINCODEC _ ERR-Code vorhanden ist, sollte der Codec E NOTIMPL für _ nichtimplementierte Methoden zurückgeben.

In den folgenden Tabellen sind die erforderlichen und optionalen Methoden für jede Windows WIC-Schnittstellen (Imaging Component) aufgeführt.

Iwicbitmapdecoder

Erforderlich

QueryCapability

Initialisieren

GetContainerFormat

GetDecoderInfo

GetFrameCount

Getframe

Optional

GetPreview

GetThumbnail2

GetColorContexts

GetMetadataQueryReader

CopyPalette

¹Erstützt, wenn Ihr Imagedateiformat Vorschauversionen auf Containerebene unterstützt. Wenn dies nicht der Fall ist, wird dringend empfohlen, das Bilddateiformat zu überarbeiten, um dies zu unterstützen. Wenn hier implementiert, ist eine entsprechende SetPreview für die Codierungsklasse auf Containerebene erforderlich.

Reliquired entweder hier oder in der Decodierungsklasse auf Frameebene, je nachdem, wo in Ihrem Bilddateiformat Miniaturansichten gespeichert werden. Wenn dies hier implementiert wird, ist eine entsprechende SetThumbnail für die Codierungsklasse auf Containerebene erforderlich.

Iwicbitmapframedecode

Erforderlich

GetColorContexts

GetMetadataQueryReader

GetSize

GetPixelFormat

GetResolution

Copypixels

Optional

GetThumbnail

CopyPalette

Erforderlich, je nachdem, wo im Bilddateiformat Miniaturansichten gespeichert werden, entweder hier oder in der Decodierungsklasse auf Containerebene. Wenn dies hier implementiert wird, ist eine entsprechende SetThumbnail für die Encoderklasse auf Frameebene erforderlich.

Iwicmetadatablockreader

Erforderlich

GetContainerFormat

GetCount

GetReaderByIndex

Getenumerator

IWICBitmapSourceTransform

Erforderlich

DoesSupportTransform

Copypixels

Optional

GetClosestSize

GetClosestPixelFormat

IWICDevelopRaw

Siehe Unterstützung für IWICDevelopRawweiter unten in diesem Dokument.

IWICBitmapEncoder

Erforderlich

Initialisieren

GetContainerFormat

GetEncoderInfo

CreateNewFrame

Commit

Optional

SetPreview

SetThumbnail2

SetColorContexts

GetMetadataQueryWriter

SetPalette

¹Erstützt, wenn Ihr Bilddateiformat Vorschauversionen auf Frameebene unterstützt.

Je nachdem, wo in Ihrem Bilddateiformat Miniaturansichten gespeichert werden, ist dies entweder hier oder in der Codierungsklasse auf Frameebene erforderlich. Wenn dies hier implementiert wird, ist eine entsprechende GetThumbnail für die Decodierungsklasse auf Containerebene erforderlich.

IWICBitmapFrameEncode

Erforderlich

Initialisieren

SetColorContexts

SetColorContexts

Setsize

SetPixelFormat

SetResolution

Writepixels

WriteSource

Commit

Optional

SetThumbnail

CopyPalette

Ist entweder hier oder in der Codierungsklasse auf Containerebene erforderlich, je nachdem, wo in Ihrem Bilddateiformat Miniaturansichten gespeichert werden. Wenn dies hier implementiert wird, ist eine entsprechende GetThumbnail für die Decodierungsklasse auf Frameebene erforderlich.

Iwicmetadatablockreader

Erforderlich

InitializeFromBlockReader

AddWriter

GetWriterByIndex

SetWriterByIndex

RemoveWriterByIndex

Konzeptionellen

Windows Übersicht über Bildverarbeitungskomponenten

WIC Guidelines for Camera RAW Image Formats

Schreiben eines WIC-Enabled CODEC