Udostępnij za pośrednictwem


Decoder-Specific wpisy rejestru

Oprócz wpisów rejestru wymaganych dla wszystkich koderów i dekodatorów następujące wpisy rejestru są wymagane specjalnie dla dekodatorów.

Te wpisy rejestrują dekoder w kategorii dekodatorów składnika Windows Imaging (WIC). Pierwszy identyfikator GUID w tych wpisach to identyfikator kategorii (CATID) dla WICBitmapDecoders.

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

Jak wspomniano w Odnajdywanie i arbitraż sekcji How The Windows Imaging Component Works, mechanizm, który umożliwia odnalezienie określonego obrazu w czasie wykonywania jest oparty na dopasowywaniu wzorca identyfikacji osadzonego w pliku obrazu ze wzorcem określonym we wpisie rejestru dekodera. Aby włączyć odnajdywanie dekodatorów w czasie wykonywania, należy zarejestrować unikatowy wzorzec identyfikacji dla formatu obrazu w następujący sposób. Wszystkie te wpisy rejestru są wymagane z wyjątkiem wpisu EndOfStream, który jest opcjonalny, zgodnie z opisem w poniższej tabeli.

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
Wartość Opis
Pozycja Przesunięcie do pliku, w którym można znaleźć wzorzec.
Długość Długość wzorca.
Deseń Rzeczywiste bity tworzące wzorzec. Są to bity, które są dopasowywane do wzorca identyfikacji w pliku obrazu podczas odnajdywania.
Maska Umożliwia używanie wartości wieloznacznych we wzorcach. Maska jest stosowana przez wykonanie logicznej operacji AND we wzorcu i masce. Każdy bit we wzorcu, który odpowiada bitowi w masce z wartością 0, jest ignorowany.
EndOfStream Przesunięcie wzorca identyfikacji powinno być obliczane z końca strumienia, a nie od początku. Niektóre formaty obrazów umieszczają wzorzec identyfikacji na lub w pobliżu końca pliku. Ponieważ wartością domyślną jest wyszukiwanie od początku, chyba że wzorzec znajduje się na końcu pliku, można pominąć ten wpis.

 

Koder kodu może obsługiwać więcej niż jeden wzorzec identyfikacji. W takim przypadku należy powtórzyć wszystkie klucze w HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternsi użyć klucza liczbowego (0 w przykładzie), aby odróżnić różne wzorce. Należy uwzględnić każdą z czterech wartości w kluczu dla każdego wzorca.

Rejestrowanie formatu kontenera za pomocą czytników metadanych

Jeśli tworzysz nowy format kontenera dla kodera, musisz również utworzyć wpisy rejestru, aby obsługiwać odnajdywanie czytników metadanych dla bloków metadanych na obrazach, podobnie jak w przypadku składników zapisywania metadanych. Następujące wpisy należy utworzyć w identyfikatorze klasy (CLSID) czytnika metadanych dla każdego formatu metadanych obsługiwanego przez format kontenera. (Pamiętaj, że jeśli koder koder używa kontenera otagowanych plików obrazów (TIFF), te informacje są już w rejestrze.

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

Ponieważ wpisy dla czytników metadanych są również używane do odnajdywania, są one bardzo podobne do wpisów dla dekodatorów. Te wpisy są używane przez fabrykę składników do znajdowania czytników metadanych obsługiwanych przez kontener i wybierania odpowiedniego, gdy IWICMetadataBlockReader implementacji żąda czytnika metadanych.

Wartość Opis
Pozycja Przesunięcie w kontenerze bloku metadanych, w którym można znaleźć nagłówek metadanych. W przypadku bloków metadanych najwyższego poziomu jest to przesunięcie w strumieniu plików. W przypadku bloków metadanych zagnieżdżonych w innych blokach metadanych jest to przesunięcie względem zawierającego blok metadanych.
Deseń Rzeczywiste bity tworzące wzorzec. Są to bity, które są dopasowywane do wzorca identyfikacji w pliku obrazu podczas odnajdywania.
Maska Nagłówek metadanych jest zwykle definiowany przez procedurę obsługi metadanych. Należy użyć standardowego nagłówka metadanych dla każdego czytnika, chyba że z jakiegoś powodu wzorzec musi mieć inny format w kontenerze.
DataOffset Przesunięcie od początku nagłówka metadanych, na którym zaczynają się rzeczywiste dane. W przypadkach, gdy metadane nie znajdują się na określonym przesunięcie z nagłówka, ten wpis można pominąć.

 

koncepcyjne

Encoder-Specific wpisy rejestru

integracja z galerią zdjęć systemu Windows i Eksploratorem Windows

Jak napisać WIC-Enabled CODEC

Składnik programu Windows Imaging — omówienie