Share via


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.

 

Konzept

Encoderspezifische Registrierungseinträge

Integration mit Windows-Fotogalerie und Windows Explorer

Schreiben eines WIC-Enabled CODEC

Übersicht über die Windows-Bildverarbeitungskomponente