ID2D1DeviceContext::CreateGradientStopCollection 方法 (d2d1_1.h)
建立漸層停駐點集合,讓漸層包含值在 [0,1] 以外的色彩通道,並啟用在 sRGB 空間中插入的高色彩轉譯目標。
語法
HRESULT CreateGradientStopCollection(
const D2D1_GRADIENT_STOP *straightAlphaGradientStops,
UINT32 straightAlphaGradientStopsCount,
D2D1_COLOR_SPACE preInterpolationSpace,
D2D1_COLOR_SPACE postInterpolationSpace,
D2D1_BUFFER_PRECISION bufferPrecision,
D2D1_EXTEND_MODE extendMode,
D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
[out] ID2D1GradientStopCollection1 **gradientStopCollection1
);
參數
straightAlphaGradientStops
類型: const D2D1_GRADIENT_STOP*
色彩值和位移的陣列。
straightAlphaGradientStopsCount
類型: UINT
gradientStops 陣列中的項目數目。
preInterpolationSpace
類型: D2D1_COLOR_SPACE
指定輸入色彩空間和發生色彩插補的空間。
postInterpolationSpace
類型: D2D1_COLOR_SPACE
發生插補之後,色彩要轉換成的色彩空間。
bufferPrecision
用來保存內插值之紋理的有效位數。
extendMode
類型: D2D1_EXTEND_MODE
定義決定停止集合所定義範圍外色彩的方式。
colorInterpolationMode
類型: D2D1_COLOR_INTERPOLATION_MODE
定義色彩的插補方式。 D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED是預設值,如需詳細資訊,請參閱。
[out] gradientStopCollection1
類型: ID2D1GradientStopCollection1**
新的漸層停駐點集合。
傳回值
類型: HRESULT
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
HRESULT | 描述 |
---|---|
S_OK | 未發生任何錯誤。 |
E_OUTOFMEMORY | Direct2D 無法配置足夠的記憶體來完成呼叫。 |
E_INVALIDARG | 無效的值已傳遞至 方法。 |
備註
這個方法會在色彩停駐點之間以線性方式插補。 選擇性的色彩空間轉換會在插補後套用。 套用此 Gamma 轉換的方式是否取決於插補前和后插補點。 如果裝置內容不支援要求的緩衝區有效位數,這個方法將會失敗。
若要取得所需的結果,您必須確定輸入是在正確的色彩空間中指定。
不論內插補點模式為預先乘法或直線,您都必須一律以直線 Alpha 指定色彩。 插補模式只會影響插補值。 同樣地, ID2D1GradientStopCollection::GetGradientStops 所傳回的停止一律會有直接 Alpha。
如果您指定 D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED,則所有停止都會在插補之前預先乘以,然後在色彩轉換之前取消預乘。
從 Windows 8 開始,這個方法的內插補點行為已變更。
下表顯示 Windows 7 和更早版本中的行為。
色差補正 | 在插補行為之前 | 插補行為之後 | GetColorInteroplationGamma (輸出色彩空間) |
---|---|---|---|
1.0 | 限制輸入,然後從 sRGB 轉換為 scRGB。 | 從 scRGB 轉換為 sRGB 后插補點。 | 1.0 |
2.2 | 限制輸入。 | 無作業 | 2.2 |
下表顯示 Windows 8和更新版本中的行為。
色差補正 | 在插補行為之前 | 插補行為之後 | GetColorInteroplationGamma (輸出色彩空間) |
---|---|---|---|
sRGB 至 scRGB | 無作業 | 限制輸出,然後從 sRGB 轉換為 scRGB。 | 1.0 |
scRGB 至 sRGB | 無作業 | 限制輸出,然後從 sRGB 轉換為 scRGB。 | 2.2 |
sRGB 至 sRGB | 無作業 | 無作業 | 2.2 |
scRGB 至 scRGB | 無作業 | 無作業 | 1.0 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | 適用於 Windows Server 2008 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d2d1_1.h |
Dll | D2d1.dll |