表传输效果

使用表传输效果通过内插所提供的值列表创建的传输函数来映射图像的颜色强度。

此效果的 CLSID CLSID_D2D1TableTransfer。

示例图

此处的图像显示了表传输效果的输入和输出。

之前
效果前的图像。
之后
转换后的图像。
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);

tableTransferEffect->SetInput(0, bitmap);

float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(tableTransferEffect.Get());
m_d2dContext->EndDraw();

传输函数基于输入 V= (V0,V1,V2,V3,V?,VN) 其中 N 是元素数 - 1。

输入像素强度表示为 C。可以使用公式计算输出像素强度 C。

对于值 C,选取值 k,以便:k/N = C < (k+1) /N

使用以下公式计算输出 C: C' = V? + (C - k/N) * N * (V???1?- V?)

此效果适用于直乘和预乘 alpha 图像。 该效果输出预乘的 alpha 位图。

下面是表属性设置为 [0.0, 0.25, 1.0]时表传输函数图的外观。

表传输函数的像素强度图。

效果属性

注意

表传输属性的所有通道的值都是无单位的,其最小值为 0.0,最大值为 1.0。

显示名称和索引枚举 类型和默认值 说明
RedTable
D2D1_TABLETRANSFER_PROP_RED_TABLE
FLOAT[]
{0.0f, 1.0f}
用于定义 Red 通道的传输函数的值列表。
RedDisable
D2D1_TABLETRANSFER_PROP_RED_DISABLE
BOOL
FALSE
如果将其设置为 TRUE,则效果不会将传输函数应用于红色通道。 如果将其设置为 FALSE,则会将 RedTableTransfer 函数应用于 Red 通道。
GreenTable
D2D1_TABLETRANSFER_PROP_GREEN_TABLE
FLOAT[]
{0.0f, 1.0f}
用于定义绿色通道的传输函数的值列表。
GreenDisable
D2D1_TABLETRANSFER_PROP_GREEN_DISABLE
BOOL
FALSE
如果将其设置为 TRUE,则效果不会将传输函数应用于绿色通道。 如果将其设置为 FALSE,则会将 GreenTableTransfer 函数应用于绿色通道。
BlueTable
D2D1_TABLETRANSFER_PROP_BLUE_TABLE
FLOAT[]
{0.0f, 1.0f}
用于定义 Blue 通道传输函数的值列表。
BlueDisable
D2D1_TABLETRANSFER_PROP_BLUE_DISABLE
BOOL
FALSE
如果将其设置为 TRUE,则效果不会将传输函数应用于蓝色通道。 如果将其设置为 FALSE,则会将 BlueTableTransfer 函数应用于 Blue 通道。
AlphaTable
D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE
FLOAT[]
{0.0f, 1.0f}
用于定义 Alpha 通道的传输函数的值列表。
AlphaDisable
D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE
BOOL
FALSE
如果将其设置为 TRUE,则效果不会将传输函数应用于 Alpha 通道。 如果将其设置为 FALSE,则会将 AlphaTableTransfer 函数应用于 Alpha 通道。
ClampOutput
D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT
BOOL
FALSE
在效果将值传递给图形中的下一个效果之前,该效果是否将颜色值固定为 0 到 1 之间。 该效果在预乘 alpha 之前固定值。
如果将其设置为 TRUE,则效果将固定值。 如果将其设置为 FALSE,则效果不会固定颜色值,但如果其精度不够高,则其他效果和输出图面可能会限制这些值。

要求

要求
最低受支持的客户端 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |Windows 应用商店应用]
最低受支持的服务器 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |Windows 应用商店应用]
标头 d2d1effects.h
d2d1.lib、dxguid.lib

ID2D1Effect