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 in Abschnitt "Discovery and Arbitration" Abschnitt "How The Windows Imaging Component Works" erwähnt, basiert der Mechanismus, mit dem ein entsprechender Decoder für ein bestimmtes Bild zur Laufzeit ermittelt werden kann, auf dem Abgleich eines in die 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 Das Bildformat wie folgt registrieren. Alle diese Registrierungseinträge sind erforderlich, mit Ausnahme des EndOfStream- Eintrags, 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 die Datei, in der das Muster gefunden werden kann. |
Länge | Die Länge des Musters. |
Muster | Die tatsächlichen Bits, aus denen das Muster besteht. Dies sind die Bits, die mit dem Identifizierenmuster in einer Bilddatei während der Ermittlung abgeglichen werden. |
Maske | Ermöglicht Dies für Wildcardwerte in Mustern. Die Maske wird angewendet, indem ein logischer AND-Vorgang für das Muster und die Maske ausgeführt wird. Alle Bits im Muster, die einem Bit in der Maske mit dem Wert 0 entsprechen, werden ignoriert. |
EndOfStream | Der Offset des identifizierenden Musters sollte vom Ende des Datenstroms und nicht vom Anfang berechnet werden. Bei einigen Bildformaten wird das identifizierende Muster am Ende der Datei oder am Ende der Datei platziert. Da der Standardwert von Anfang an gesucht werden soll, können Sie diesen Eintrag weglassen, es sei denn, Ihr Muster befindet sich am Ende der Datei. |
Ein Codec kann mehrere identifizierende Muster unterstützen. In diesem Fall würden Sie alle Schlüssel unter HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternswiederholen und den numerischen Schlüssel (0 im Beispiel) verwenden, um zwischen den verschiedenen Mustern zu unterscheiden. Sie müssen jeden der vier Werte unter dem Schlüssel für jedes Muster einschließen.
Registrieren eines Containerformats mit 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 Bildern zu unterstützen, genau wie für die Metadatenautoren. Die folgenden Einträge müssen unter dem Klassenbezeichner (CLSID) des Metadatenlesers für jedes Metadatenformat erstellt werden, das vom Containerformat unterstützt wird. (Beachten Sie, dass diese Informationen bereits in der Registrierung enthalten sind, wenn Ihr Codec einen Tagged Image File Format (TIFF)-Container verwendet.)
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 Komponentenfactory verwendet, um die von Ihrem Container unterstützten Metadatenleser zu finden und die entsprechende auszuwählen, wenn Ihre IWICMetadataBlockReader Implementierung einen Metadatenleser anfordert.
Wert | Beschreibung |
---|---|
Position | Der Offset im Container des Metadatenblocks, in dem sich der Metadatenheader befindet. Bei Metadatenblöcken auf oberster Ebene ist dies der Offset im Dateidatenstrom. Bei Metadatenblöcken, die in anderen Metadatenblöcken geschachtelt sind, handelt es sich um den Offset relativ zum enthaltenden Metadatenblock. |
Muster | Die tatsächlichen Bits, aus denen das Muster besteht. Dies sind die Bits, die mit dem Identifizierenmuster in einer Bilddatei während der Ermittlung abgeglichen werden. |
Maske | Der Metadatenheader wird im Allgemeinen vom Metadatenhandler definiert. Sie sollten den Standardmetadatenheader für jeden Reader verwenden, es sei denn, das Muster muss aus irgendeinem Grund ein anderes Format in Ihrem Container aufweisen. |
DataOffset | Der Offset vom Anfang des Metadatenheaders, bei dem die tatsächlichen Daten beginnen. In Fällen, in denen sich die Metadaten nicht in einem bestimmten Offset vom Header befinden, kann dieser Eintrag weggelassen werden. |
Verwandte Themen
-
Konzeptionelle