支援 IWICDevelopRaw
為了讓應用程式支援RAW處理,強烈建議編解碼器作者實作 IWICDevelopRaw的所有參數。 針對 Windows 7,Windows 映像處理元件 (WIC) 將需要支援所有 IWICDevelopRaw。 如果您的檔案格式不支援所有這些參數,則您應該修改影像檔案格式。
若要在應用程式中啟用基本的RAW處理,編解碼器必須支援對曝光的調整 (ExposureCompensationSupport) 和色彩 (例如 KelvinWhitePointSupport 和 TintSupport)。 此外,強烈建議您輸出特定色彩空間和像素格式。 當然,建議支援其他調整,而且需要 Windows 7。
RAW 編解碼器必須提供影像輪替和快速預覽的基本支援。 旋轉可以透過兩種不同的方式指定:
- IWICDevelopRaw::SetRotation 方法。 這個方法會將後續呼叫的所需旋轉角度設定為 copyPixels。
- IWICBitmapSourceTransform::CopyPixels 方法。 呼叫端可以設定 dstTransform 選項,以指出所需的旋轉角度。
這兩種方法在下列方面有所不同:
- 只有 IWICDevelopRaw 設定可以在譯碼器對象的實例之間保存。
- IWICBitmapSourceTransform::CopyPixels 僅適用於該特定呼叫;沒有任何持續性。
- IWICDevelopRaw 提供更精細的旋轉控制。 IWICBitmapSourceTransform::CopyPixels 限制為 90 度增量。
如果在 IWICDevelopRaw 和 IWICBitmapSourceTransform中指定旋轉,則旋轉效果是累計的。 例如,如果 IWICDevelopRaw 指定 25 度旋轉,且 IWICBitmapSourceTransform 指定 90 度旋轉,則應該會發生下列情況:
- 呼叫 IWICBitmapFrameDecode::CopyPixels 應套用 25 度旋轉(也就是說,只有 IWICDevelopRaw中所指定的數量)。
- 呼叫 IWICBitmapSourceTransform::CopyPixels dstTransform 數量為 90,然後產生 115 度旋轉(25 + 90)。
- 同樣地,只能保存透過 IWICDevelopRaw 指定的 25 度旋轉::SetRotation。
在 Windows Vista 中,IWICBitmapFrameDecode::GetThumbnail 和 IWICBitmapDecoder::GetPreview 方法可讓呼叫者分別取得內嵌的縮圖和預覽影像。 這些是用來從圖像檔串流傳回預先計算的預覽和縮圖。 「即時」產生預覽或縮圖會導致 Windows 檔案總管和相片查看器的效能不佳。 當使用者執行處理設定的互動式控制時,編解碼器也必須提供一種方式,以快速傳回更新的螢幕解析度影像。
呼叫 IWICDevelopRaw::SetRenderMode 將決定後續呼叫 IWICBitmapFrameDecode::CopyPixels 傳回 (偏向速度或品質)。 此外,IWICBitmapSourceTransform 介面可用來判斷是否需要向下取樣,而且可以在套用時增加效能。 所有影像的色彩逼真度應該是可比較的。 對處理設定進行變更時,所有這些轉譯都應該反映變更。
相關主題