色彩管理效果
使用色彩管理效果,將影像從國際色彩聯盟 (國際色彩聯盟) 色彩設定檔轉換成另一個。 效果會根據 ICC 規格轉換影像。
此效果的 CLSID CLSID_D2D1ColorManagement。
效果屬性
顯示名稱和索引列舉 | 描述 |
---|---|
SourceContext D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT |
來源色彩空間資訊。 此類型為 ID2D1ColorCoNtext。 預設值是 NULL。 |
SourceIntent D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT |
要使用的 ICC 轉譯意圖。 此類型為 D2D1_COLORMANAGEMENT_RENDERING_INTENT。 預設值為 D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL。 |
DestinationCoNtext D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT |
目的地色彩空間資訊。 此類型為 ID2D1ColorCoNtext。 預設值是 NULL。 |
DestinationIntent D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT |
要使用的 ICC 轉譯意圖。 此類型為 D2D1_COLORMANAGEMENT_RENDERING_INTENT。 預設值為 D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL。 |
AlphaMode D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE |
如何解譯輸入影像中包含的 Alpha 資料。 此類型為 D2D1_COLORMANAGEMENT_ALPHA_MODE。 預設值為 D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED。 |
品質 D2D1_COLORMANAGEMENT_PROP_QUALITY |
轉換的品質等級。 此類型為 D2D1_COLORMANAGEMENT_QUALITY。 預設值為 D2D1_COLORMANAGEMENT_QUALITY_NORMAL。 |
轉譯意圖模式
列舉型別 | 描述 |
---|---|
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL | 效果會壓縮或展開影像的完整色彩色域,以填滿裝置的色彩色域,以產生可保留色彩詳細資料的感知輸出,但可能會犧牲色度精確度。 這適用于真實生活內容的一般重現,例如相片。 |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC | 效果會調整輸出裝置可以轉譯為最接近可轉譯之色彩以外的任何色彩。 它不會保留白色點。 |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION | 效果會保留影像中純色的飽和度,代價是色調和光線。 它適用于圖表和圖表等圖形。 |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC | 效果會調整輸出裝置可以轉譯為最接近可轉譯之色彩以外的任何色彩。 效果不會變更遊戲內色彩,並保留白色點。 |
輸入影像 Alpha 模式
列舉型別 | 描述 |
---|---|
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED | 效果假設 Alpha 模式是預乘的。 |
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT | 效果假設 Alpha 模式是直線的。 |
D2D1_GAMMA1_G2084行為變更
如果您的應用程式使用 D2D1_GAMMA1_G2084 空間,或使用 SMPTE ST.2084 (Perceptual Quantizer) 色彩空間的其中一個 DXGI_COLOR_SPACE_TYPE 列舉值,則應用程式會想要使用 HDR 資料。
ID2D1DeviceCoNtext5::CreateColorCoNtextFromSimpleColorProfile和ID2D1DeviceCoNtext5::CreateColorCoNtextFromDxgiColorSpace API 不考慮該 API;相反地,HDR 內容會調整為符合 G2084 DeGamma 作業期間的 0-1 範圍。
實際上,此 Gamma 空間中編碼的內容會使用 10,000 Nits 的參考 WhiteLevel,這通常會以 CCCS 表示為 10,000 / 80 = 125.0。 因此,為了更方便您的應用程式,此 Gamma 轉換最簡單的方式是將亮度調整為 125。 自 Windows 10 版本 1809 (10.0 起;組建 17763) ,色彩管理效果的行為就是套用此縮放比例。 這表示您身為開發人員,不需要將第二個 白色層級調整效果 套用至管線。
符合 ICC 規格
色彩管理效果符合 ICC v4.3 規格,但有下列限制:
- 效果支援 1、3 和 4 色板色彩空間。
- 效果不支援 ColorSpace 或具名色彩設定檔。
Alpha 色板行為
一般而言,如果來源影像中沒有 Alpha 資料,效果會將 Alpha 設定為 1 (不透明) ,如果目的地影像中沒有空間,則會捨棄 Alpha 資料。 下表描述 Alpha 行為。
來源色彩空間,像素格式 | 目的地色彩空間,像素格式 | Alpha 行為 |
---|---|---|
1 個通道,R 像素格式 |
1 個通道,R 像素格式 | (沒有 Alpha 資料) |
1 個通道,RGBA 像素格式 | Alpha 資料設定為 1 (不透明) | |
3 通道,RGBA 像素格式 | Alpha 資料設定為 1 (不透明) | |
4 通道,RGBA 像素格式 | (沒有 Alpha 資料) | |
1 個通道,RGBA 像素格式 |
1 個通道,R 像素格式 | Alpha 資料會被捨棄 |
1 個通道,RGBA 像素格式 | Alpha 資料會通過 | |
3 通道,RGBA 像素格式 | Alpha 資料會通過 | |
4 通道,RGBA 像素格式 | Alpha 資料會被捨棄 | |
3 通道,RGBA 像素格式 |
1 個通道,R 像素格式 | Alpha 資料會被捨棄 |
1 個通道,RGBA 像素格式 | Alpha 資料會通過 | |
3 通道,RGBA 像素格式 | Alpha 資料會通過 | |
4 通道,RGBA 像素格式 | Alpha 資料會被捨棄 | |
4 通道,RGBA 像素格式 |
1 個通道,R 像素格式 | (沒有 Alpha 資料) |
1 個通道,RGBA 像素格式 | Alpha 資料設定為 1 (不透明) | |
3 通道,RGBA 像素格式 | Alpha 資料設定為 1 (不透明) | |
4 通道,RGBA 像素格式 | (沒有 Alpha 資料) |
品質模式
[模式] | 描述 |
---|---|
D2D1_COLORMANAGEMENT_QUALITY_PROOF | 最低品質模式。 此模式需要功能層級 9_1 或更新版本。 |
D2D1_COLORMANAGEMENT_QUALITY_NORMAL | 標準品質模式。 此模式需要功能層級 9_1 或更新版本。 |
D2D1_COLORMANAGEMENT_QUALITY_BEST | 最佳品質模式。 此模式需要功能層級 10_0 或更新版本,以及浮點有效位數緩衝區。 此模式支援浮點有效位數,以及如 ICC v4.3 規格中所定義的擴充範圍。 |
如果應用程式要求硬體不支援的品質模式,則色彩管理效果會失敗。 呼叫 D3D11CreateDevice時,您可以判斷功能層級。 您可以使用值D2D1_BUFFER_PRECISION_32BPC_FLOAT呼叫ID2D1EffectCoNtext::IsBufferPrecisionSupported 來檢查浮點緩衝區支援。
範例程式碼
如需此效果的範例,請下載 Direct2D 效果相片調整範例,並參閱範例的第 4 課。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
最低支援的伺服器 | 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
標頭 | d2d1effects.h |
程式庫 | d2d1.lib、dxguid.lib |