Partilhar via


Efeito de deteção de borda

Filtra o conteúdo de uma imagem, deixando linhas nas bordas das seções contrastantes da imagem.

O CLSID para este efeito é CLSID_D2D1EdgeDetection.

Imagem de exemplo

exemplo de saída de efeito

Código de exemplo

ComPtr<ID2D1Effect> edgeDetectionEffect;
m_d2dContext->CreateEffect(CLSID_D2D1EdgeDetection, &edgeDetectionEffect);
 
edgeDetectionEffect->SetInput(0, bitmap);
edgeDetectionEffect->SetValue(D2D1_EDGEDETECTION_PROP_STRENGTH, 0.5f);
edgeDetectionEffect->SetValue(D2D1_EDGEDETECTION_PROP_BLUR_RADIUS, 0.0f);
edgeDetectionEffect->SetValue(D2D1_EDGEDETECTION_PROP_MODE, D2D1_EDGEDETECTION_MODE_SOBEL);
edgeDetectionEffect->SetValue(D2D1_EDGEDETECTION_PROP_OVERLAY_EDGES, false);
edgeDetectionEffect->SetValue(D2D1_EDGEDETECTION_PROP_ALPHA_MODE, D2D1_ALPHA_MODE_PREMULTIPLIED);
 
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(edgeDetectionEffect.Get());
m_d2dContext->EndDraw();

Propriedades do efeito

As propriedades para o efeito de deteção de borda são definidas pela enumeração D2D1_EDGEDETECTION_PROP.

Requerimentos

Exigência Valor
Cliente mínimo suportado Windows 10 [aplicações de ambiente de trabalho | Aplicações da Loja Windows]
Servidor mínimo suportado Windows 10 [aplicações de ambiente de trabalho | Aplicações da Loja Windows]
Cabeçalho d2d1effects_2.h
Biblioteca d2d1.lib, dxguid.lib