色彩管理效果
使用色彩管理效果,將影像從一個 ICC(國際色彩聯盟)色彩配置檔轉換成另一個。 效果會根據 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 不考慮;相反地,HDR 內容會調整為符合 G2084 DeGamma 作業期間的 0-1 範圍。
實際上,在此伽瑪空間中編碼的內容會使用 10,000 Nits 的參考 WhiteLevel,通常以 CCCS 表示為 10,000 / 80 = 125.0。 因此,為了更方便您的應用程式,此伽瑪轉換最簡單的方式,也會將亮度調整為 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 |