Delen via


registervermeldingen Decoder-Specific

Naast de registervermeldingen die vereist zijn voor alle encoders en decoders, zijn de volgende registervermeldingen specifiek vereist voor decoders.

Deze vermeldingen registreren uw decoder onder de categorie WIC-decoders (Windows Imaging Component). De eerste GUID in deze vermeldingen is de categorie-id (CATID) voor WICBitmapDecoders.

HKEY_CLASSES_ROOT
   CLSID
      {7ED96837-96F0-4812-B211-F13C24117ED3}
         Instance
            {Decoder CLSID}
               CLSID = {Decoder CLSID}
               FriendlyName = {Name of Decoder}

Zoals vermeld in sectie Discovery and Arbitration sectie van How The Windows Imaging Component Works, is het mechanisme waarmee een geschikte decoder voor een specifieke afbeelding tijdens runtime kan worden gedetecteerd, gebaseerd op het koppelen van een identificatiepatroon dat is ingesloten in het afbeeldingsbestand met een patroon dat is opgegeven in de registervermelding van de decoder. Als u runtimedetectie van decoders wilt inschakelen, moet u als volgt het unieke identificatiepatroon voor uw afbeeldingsindeling registreren. Al deze registervermeldingen zijn vereist, met uitzondering van de EndOfStream vermelding, die optioneel is, zoals beschreven in de volgende tabel.

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
Waarde Beschrijving
Positie De verschuiving in het bestand waar het patroon kan worden gevonden.
Lengte De lengte van het patroon.
Patroon De werkelijke bits waaruit het patroon bestaat. Dit zijn de bits die tijdens de detectie overeenkomen met het identificatiepatroon in een afbeeldingsbestand.
Masker Hiermee kunnen jokertekenwaarden in patronen worden gebruikt. Het masker wordt toegepast door een logische AND-bewerking uit te voeren op het patroon en het masker. Elke bit in het patroon dat overeenkomt met een bit in het masker met de waarde 0, wordt genegeerd.
EndOfStream De verschuiving van het identificatiepatroon moet worden berekend vanaf het einde van de stroom, in plaats van het begin. In sommige afbeeldingsindelingen wordt het identificatiepatroon aan of aan het einde van het bestand weergegeven. Omdat de standaardinstelling is om vanaf het begin te zoeken, tenzij uw patroon zich aan het einde van het bestand bevindt, kunt u deze vermelding weglaten.

 

Een codec kan meer dan één identificatiepatroon ondersteunen. In dat geval herhaalt u alle sleutels onder HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternsen gebruikt u de numerieke sleutel (0 in het voorbeeld) om onderscheid te maken tussen de verschillende patronen. U moet elk van de vier waarden onder de sleutel voor elk patroon opnemen.

Een containerindeling registreren bij lezers van metagegevens

Als u een nieuwe containerindeling voor uw codec maakt, moet u ook registervermeldingen maken ter ondersteuning van de detectie van metagegevenslezers voor de metagegevensblokken in uw installatiekopieën, net als voor de schrijvers van metagegevens. De volgende vermeldingen moeten worden gemaakt onder de klasse-id (CLSID) van de metagegevenslezer voor elke indeling voor metagegevens die door uw containerindeling wordt ondersteund. (Houd er rekening mee dat als uw codec een TIFF-container (Tagged Image File Format) gebruikt, deze informatie zich al in het register bevindt.)

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

Omdat de vermeldingen voor lezers van metagegevens ook worden gebruikt voor detectie, zijn ze vergelijkbaar met de vermeldingen voor decoders. Deze vermeldingen worden door de onderdelenfactory gebruikt om de metagegevenslezers te vinden die door uw container worden ondersteund en om de juiste te selecteren wanneer uw IWICMetadataBlockReader implementatie een metagegevenslezer aanvraagt.

Waarde Beschrijving
Positie De verschuiving in de container van het metagegevensblok waar de metagegevensheader kan worden gevonden. Voor metagegevensblokken op het hoogste niveau is dit de verschuiving in de bestandsstroom. Voor metagegevensblokken die zijn genest in andere metagegevensblokken, is dit de offset ten opzichte van het blok met metagegevens.
Patroon De werkelijke bits waaruit het patroon bestaat. Dit zijn de bits die tijdens de detectie overeenkomen met het identificatiepatroon in een afbeeldingsbestand.
Masker De metagegevensheader wordt over het algemeen gedefinieerd door de metagegevenshandler. U moet de standaardheader voor metagegevens voor elke lezer gebruiken, tenzij het patroon om een of andere reden een andere indeling in uw container moet hebben.
DataOffset De verschuiving van het begin van de metagegevensheader waarop de werkelijke gegevens beginnen. In gevallen waarin de metagegevens zich niet op een specifieke offset van de koptekst bevinden, kan deze vermelding worden weggelaten.

 

conceptuele

Encoder-Specific registervermeldingen

-integratie met Windows Photo Gallery en Windows Verkenner

Een WIC-Enabled CODEC- schrijven

Overzicht van Windows Imaging-onderdelen