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. |
Verwante onderwerpen
-
conceptuele
-
Een WIC-Enabled CODEC- schrijven
-
Overzicht van Windows Imaging-onderdelen