Decoder-Specific Registrierungseinträge
Zusätzlich zu den Registrierungseinträgen, die für alle Encoder und Decoder erforderlich sind, sind die folgenden Registrierungseinträge speziell für Decoder erforderlich.
Diese Einträge registrieren Ihren Decoder unter der Kategorie Windows Imaging Component (WIC)-Decoder. Die erste GUID in diesen Einträgen ist der Kategoriebezeichner (CATID) für WICBitmapDecoders.
HKEY_CLASSES_ROOT
CLSID
{7ED96837-96F0-4812-B211-F13C24117ED3}
Instance
{Decoder CLSID}
CLSID = {Decoder CLSID}
FriendlyName = {Name of Decoder}
Wie im Abschnitt Ermittlung und Vermittlung von Funktionsweise der Windows Imaging-Komponente erwähnt, basiert der Mechanismus, mit dem zur Laufzeit ein geeigneter Decoder für ein bestimmtes Bild gefunden werden kann, auf dem Abgleich eines in der Bilddatei eingebetteten Identifizierungsmusters mit einem Muster, das im Registrierungseintrag des Decoders angegeben ist. Um die Laufzeitermittlung von Decodern zu aktivieren, müssen Sie das eindeutige Identifizierungsmuster für Ihr Bildformat wie folgt registrieren. Alle diese Registrierungseinträge sind erforderlich, mit Ausnahme des Eintrags EndOfStream, der optional ist, wie in der folgenden Tabelle beschrieben.
HKEY_CLASSES_ROOT
CLSID
{Decoder CLSID}
Patterns
{0}
Position = Offset in block
Length = Length of pattern
Pattern = Pattern to match
Mask = FF FF FF FF
EndOfStream = 0|1
| Wert | BESCHREIBUNG |
|---|---|
| Position | Der Offset in der Datei, in der das Muster gefunden werden kann. |
| Länge | Die Länge des Musters. |
| Muster | Die tatsächlichen Bits, die das Muster ausdingen. Dies sind die Bits, die während der Ermittlung mit dem identifizierenden Muster in einer Bilddatei übereinstimmen. |
| Mask | Ermöglicht Platzhalterwerte in Mustern. Die Maske wird angewendet, indem eine logische AND-Operation für das Muster und die Maske durchgeführt wird. Jedes Bit im Muster, das einem Bit in der Maske mit dem Wert 0 entspricht, wird ignoriert. |
| EndOfStream | Der Offset des identifizierenden Musters sollte nicht vom Anfang, sondern vom Ende des Streams berechnet werden. Einige Bildformate platzieren das Identifizierungsmuster am oder am Ende der Datei. Da die Standardeinstellung ist, von Anfang an zu suchen, können Sie diesen Eintrag weglassen, es sei denn, Ihr Muster befindet sich am Ende der Datei. |
Ein Codec kann mehrere Identifizierungsmuster unterstützen. In diesem Fall wiederholen Sie alle Schlüssel unter HKEY _ CLASSES ROOT _ \ CLSID \ {Decoder \ CLSID}-Muster und verwenden den numerischen Schlüssel (im Beispiel 0), um zwischen den verschiedenen Mustern zu unterscheiden. Sie müssen jeden der vier Werte unter dem Schlüssel für jedes Muster enthalten.
Registrieren eines Containerformats bei Metadatenlesern
Wenn Sie ein neues Containerformat für Ihren Codec erstellen, müssen Sie auch Registrierungseinträge erstellen, um die Ermittlung von Metadatenlesern für die Metadatenblöcke in Ihren Images zu unterstützen, genau wie bei den Metadatenautoren. Die folgenden Einträge müssen unter dem Klassenbezeichner (CLSID) des Metadatenlesers für jedes Metadatenformat erstellt werden, das Ihr Containerformat unterstützt. (Wenn Ihr Codec einen TIFF-Container (Tagged Image File Format) verwendet, sind diese Informationen bereits in der Registrierung enthalten.)
HKEY_CLASSES_ROOT
CLSID
{Metadata Reader CLSID}
Containers
{Container Format GUID}
Position = Offset relative to its container
Pattern = Pattern used for metadata header
Mask = FF FF FF FF
DataOffset = Offset from beginning of header
Da die Einträge für Metadatenleser auch für die Ermittlung verwendet werden, sind sie den Einträgen für Decoder sehr ähnlich. Diese Einträge werden von der Komponenten-Factory verwendet, um die von Ihrem Container unterstützten Metadatenleser zu finden und den entsprechenden auszuwählen, wenn Ihre IWICMetadataBlockReader-Implementierung einen Metadatenleser an fordert.
| Wert | BESCHREIBUNG |
|---|---|
| Position | Der Offset im Container des Metadatenblocks, in dem sich der Metadatenheader finden lässt. Bei Metadatenblöcken der obersten Ebene ist dies der Offset im Dateistream. Bei Metadatenblöcken, die in anderen Metadatenblöcken geschachtelt sind, ist dies der Offset relativ zum enthaltenden Metadatenblock. |
| Muster | Die tatsächlichen Bits, die das Muster ausdingen. Dies sind die Bits, die während der Ermittlung mit dem identifizierenden Muster in einer Bilddatei übereinstimmen. |
| Mask | Der Metadatenheader wird im Allgemeinen vom Metadatenhandler definiert. Sie sollten den Standardmetadatenheader für jeden Reader verwenden, es sei denn, aus irgendeinem Grund muss das Muster in Ihrem Container ein anderes Format haben. |
| DataOffset | Der Offset vom Anfang des Metadatenheaders, an dem die eigentlichen Daten beginnen. In Fällen, in denen sich die Metadaten nicht an einem bestimmten Offset des Headers befinden, kann dieser Eintrag weggelassen werden. |