Implementieren eines WIC-Enabled Encoders
Einführung
Um einen WIC-Encoder (Windows Imaging Component) zu implementieren, müssen zwei Klassen geschrieben werden. Dies gilt auch für die Implementierung eines WIC-Decoders. Die Schnittstellen für diese Klassen entsprechen direkt den Encoderaufgaben, die im Abschnitt Codierung der Windows-Imagingkomponente beschrieben sind.
Eine der Klassen stellt Dienste auf Containerebene bereit und verwaltet die Serialisierung der einzelnen Imageframes innerhalb des Containers. Diese Klasse implementiert die IWICBitmapEncoder-Schnittstelle . Wenn Ihr Imageformat Metadaten auf Containerebene unterstützt, müssen Sie auch die IWICMetadataBlockWriter-Schnittstelle in dieser Klasse implementieren.
Die andere Klasse stellt Dienste auf Frameebene bereit und führt die tatsächliche Codierung der Bildbits für jeden Frame im Container durch. Außerdem durchlaufen sie die Metadatenblöcke für jeden Frame und fordert die entsprechenden Metadatenautoren auf, die Blöcke zu serialisieren. Diese Klasse implementiert die IWICBitmapFrameEncode-Schnittstelle und die IWICMetadataBlockWriter-Schnittstelle . Diese Klasse sollte über einen IStream-Member verfügen, den die Klasse auf Containerebene bei der Instanziierung initialisiert, in die die Commit-Methode die Framedaten serialisiert.
In einigen Fällen, z. B. rohe Formate, möchte der Codecautor möglicherweise nicht, dass Anwendungen in das Rohformat codiert oder neu codiert werden können, da der Zweck einer Rohdatei darin besteht, die Sensordaten genau so zu enthalten, wie sie von der Kamera stammen. In Fällen, in denen der Codecautor die Codierung nicht aktivieren möchte, ist es dennoch erforderlich, einen rudimentären Encoder zu implementieren, nur um das Hinzufügen von Metadaten zu ermöglichen. In diesem Fall muss der Encoder nur die Methoden unterstützen, die zum Schreiben von Metadaten erforderlich sind, und kann die Bildbits unverändert vom Decoder kopieren.
Zugehörige Themen
-
Referenz
-
Konzept