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ąć. |
Tematy pokrewne
-
koncepcyjne
-
integracja z galerią zdjęć systemu Windows i Eksploratorem Windows
-
Jak napisać WIC-Enabled CODEC