共用方式為


Decoder-Specific 登錄專案

除了所有編碼器和譯碼器所需的登錄專案之外,譯碼器還需要下列登錄專案。

這些專案會在 Windows 映射元件 (WIC) 譯碼器類別下註冊譯碼器。 這些專案中的第一個 GUID 是 WICBitmapDecoders類別標識碼 (CATID)。

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

如 Windows 映射元件運作方式 探索與仲裁 一節所述,讓特定映射在運行時間探索的適當譯碼器的機制是以比對映像檔中內嵌的識別模式,以及譯碼器登錄專案中指定的模式。 若要啟用譯碼器運行時間探索,您必須註冊影像格式的唯一識別模式,如下所示。 除了 EndOfStream 專案以外,這些登錄專案都是必要專案,如下表所述。

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
價值 描述
位置 找到模式的檔案位移。
長度 模式的長度。
模式 構成模式的實際位。 這些是與探索期間影像檔中識別模式相符的位。
面具 允許模式中的通配符值。 遮罩是藉由在模式和遮罩上執行邏輯 AND 作業來套用。 會忽略模式中對應至遮罩中值為 0 之位的任何位。
EndOfStream 識別模式的位移應該從數據流結尾計算,而不是開頭。 某些影像格式會將識別模式放在檔案結尾或接近檔案結尾處。 因為預設值是從頭開始搜尋,除非您的模式接近檔案結尾,否則您可以省略這個專案。

 

編解碼器可以支援多個識別模式。 在此情況下,您會在 HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patterns下重複所有索引鍵,並使用數值索引鍵 (範例中的 0) 來區分不同的模式。 您必須在每個模式的索引鍵底下包含這四個值中的每一個。

向元數據讀取器註冊容器格式

如果您為編解碼器建立新的容器格式,您也必須建立登錄專案,以支援探索映像中元數據區塊的元數據讀取器,就像您針對元數據寫入器所做的一樣。 您必須在容器格式所支援之每個元數據格式的元數據讀取器類別識別碼 (CLSID) 下建立下列專案。 (請注意,如果您的編解碼器使用標記的影像檔格式 (TIFF) 容器,則此資訊已在登錄中。

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

因為元數據讀取器的專案也用於探索,所以它們與譯碼器的專案非常類似。 元件處理站會使用這些項目來尋找容器支援的元數據讀取器,並在您的 IWICMetadataBlockReader 實作要求元數據讀取器時選取適當的專案。

價值 描述
位置 您可以在元數據區塊的容器中找到元數據標頭的位移。 對於最上層元數據區塊,這是檔案數據流中的位移。 對於巢狀於其他元數據區塊中的元數據區塊,它是相對於包含元數據區塊的位移。
模式 構成模式的實際位。 這些是與探索期間影像檔中識別模式相符的位。
面具 元數據標頭通常是由元數據處理程式所定義。 您應該針對每個讀取器使用標準元數據標頭,除非基於某些原因,模式在您的容器中必須有不同的格式。
DataOffset 元數據標頭開頭處開始實際數據的位移。 如果元數據不是位於標頭的特定位移,則可以省略此專案。

 

概念

Encoder-Specific 登錄專案

與 Windows 相片庫和 Windows 檔案總管 整合

如何撰寫 WIC-Enabled CODEC

Windows 映射元件概觀