色键效果

将给定颜色加号或减去容差转换为 alpha。 例如,色度键可以删除图像的背景,以产生绿屏覆盖效果。

此效果的 CLSID 是CLSID_D2D1ChromaKey。

示例图

效果输出示例

注意

在此示例中,色键效果的输出是带有棋盘透明背景的第二个图像。 第三张图像将此图像与最终绿屏覆盖的背景图像相结合。

代码示例

ComPtr<ID2D1Effect> chromakeyEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ChromaKey, &chromakeyEffect);
 
chromakeyEffect->SetInput(0, bitmap);
chromaKeyEffect->SetValue(D2D1_CHROMAKEY_PROP_COLOR, {0.0f, 1.0f, 0.0f, 0.0f});
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_TOLERANCE, 0.2f);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_INVERT_ALPHA, false);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_FEATHER, false);
 
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(chromakeyEffect.Get());
m_d2dContext->EndDraw();

效果属性

色键效果的属性由 D2D1_CHROMAKEY_PROP 枚举定义。

要求

要求
最低受支持的客户端 Windows 10 [桌面应用 |Windows 应用商店应用]
最低受支持的服务器 Windows 10 [桌面应用 |Windows 应用商店应用]
标头 d2d1effects_2.h
d2d1.lib、dxguid.lib