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.
Mit diesen Einträgen wird Ihr Decoder unter der Kategorie WIC-Decoder (Windows Imaging Component) registriert. Die erste GUID in diesen Einträgen ist der Kategoriebezeichner (CATID) für WICBitmapDecoder.
HKEY_CLASSES_ROOT
CLSID
{7ED96837-96F0-4812-B211-F13C24117ED3}
Instance
{Decoder CLSID}
CLSID = {Decoder CLSID}
FriendlyName = {Name of Decoder}
Wie im Abschnitt Ermittlung und Schiedsverfahren der Windows-Bildverarbeitungskomponente beschrieben, basiert der Mechanismus, der es ermöglicht, einen geeigneten Decoder für ein bestimmtes Bild zur Laufzeit zu ermitteln, 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 ermöglichen, müssen Sie das eindeutige Identifizierungsmuster für Ihr Bildformat wie folgt registrieren. Alle diese Registrierungseinträge sind erforderlich, mit Ausnahme des optionalen EndOfStream-Eintrags , 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 während der Ermittlung mit dem Identifizierungsmuster in einer Bilddatei abgeglichen werden. |
Mask | Ermöglicht die Verwendung von Feldhalterwerten in Mustern. Die Maske wird durch Ausführen eines logischen AND-Vorgangs für das Muster und die Maske angewendet. Jedes Bit im Muster, das einem Bit in der Maske mit dem Wert 0 entspricht, wird ignoriert. |
EndOfStream | Der Offset des identifizierenden Musters sollte am Ende des Datenstroms und nicht am Anfang berechnet werden. Bei einigen Bildformaten wird das Identifizierende Muster am oder am Ende der Datei platziert. Da standardmäßig von Anfang an gesucht wird, 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}\Patternsund verwenden den numerischen Schlüssel (0 im Beispiel), 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 Metadatenlesegeräten
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 Metadatenschreibern. Die folgenden Einträge müssen unter dem Klassenbezeichner (CLSID) des Metadatenlesers für jedes Metadatenformat erstellt werden, das ihr Containerformat unterstützt. (Beachten Sie, dass sich diese Informationen bereits in der Registrierung befinden, wenn Ihr Codec einen TIFF-Container (Tagged Image File Format) 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 Metadatenleseprogramme 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 Metadatenleseprogramme zu finden, die von Ihrem Container unterstützt werden, und um 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 der obersten Ebene ist dies der Offset im Dateistream. 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 während der Ermittlung mit dem Identifizierungsmuster in einer Bilddatei abgeglichen werden. |
Mask | Der Metadatenheader wird im Allgemeinen vom Metadatenhandler definiert. Sie sollten den Standardmetadatenheader für jeden Leser verwenden, es sei denn, das Muster muss aus irgendeinem Grund ein anderes Format in Ihrem Container aufweisen. |
DataOffset | Der Offset vom Anfang des Metadatenheaders, an dem die tatsächlichen Daten beginnen. In Fällen, in denen sich die Metadaten nicht an einem bestimmten Offset des Headers befinden, kann dieser Eintrag weggelassen werden. |
Zugehörige Themen
-
Konzept