Efeito morfológico
Use o efeito morfológico para diluir ou engrossar os limites das bordas em uma imagem. Esse efeito cria um kernel que é 2 vezes os valores de Width e Height especificados. Este efeito centra o kernel no pixel que está a calcular e devolve o valor máximo no kernel (se estiver a dilatar) ou o valor mínimo no kernel (se estiver a erodir).
O CLSID para este efeito é CLSID_D2D1Morphology.
Imagens de exemplo
Este exemplo mostra a saída do efeito ao usar o modo de erosão.
Antes |
---|
![]() |
Após |
![]() |
ComPtr<ID2D1Effect> morphologyEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Morphology, &morphologyEffect);
morphologyEffect->SetInput(0, bitmap);
morphologyEffect->SetValue(D2D1_MORPHOLOGY_PROP_MODE, D2D1_MORPHOLOGY_MODE_ERODE);
morphologyEffect->SetValue(D2D1_MORPHOLOGY_PROP_WIDTH, 14);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(morphologyEffect.Get());
m_d2dContext->EndDraw();
Propriedades do efeito
Nome para exibição e enumeração de índice | Tipo e valor padrão | Descrição |
---|---|---|
Modo D2D1_MORPHOLOGY_PROP_MODE |
D2D1_MORPHOLOGY_MODE D2D1_MORPHOLOGY_MODE_ERODE |
O modo morfológico. Os modos disponíveis são erodir (achatar) e dilatar (engrossar). Consulte Modos de morfologia para obter mais informações. |
Largura D2D1_MORPHOLOGY_PROP_WIDTH |
UINT 1 |
Tamanho do kernel na direção X. As unidades estão em DIPs. Os valores devem estar entre 1 e 100 inclusive. |
Altura D2D1_MORPHOLOGY_PROP_HEIGHT |
UINT 1 |
Tamanho do kernel na direção Y. As unidades estão em DIPs. Os valores devem estar entre 1 e 100 inclusive. |
Modos morfológicos
Designação | Descrição |
---|---|
D2D1_MORPHOLOGY_MODE_ERODE | O valor mínimo de cada canal RGB no kernel é usado. |
D2D1_MORPHOLOGY_MODE_DILATE | O valor máximo de cada canal RGB no kernel é usado. |
Bitmap de saída
Para o modo DILATE, o tamanho do bitmap de saída aumenta:
Exigência | Valor |
---|---|
Crescimento do bitmap de saída X = | INT(FLOAT(Largura) * ((Usuário DPI) / 96)) |
Crescimento do bitmap de saída Y = | INT(FLOAT(Altura) * ((Usuário DPI) / 96)) |
Para o modo ERODE, o tamanho do bitmap de saída diminui:
Exigência | Valor |
---|---|
Crescimento do bitmap de saída X = | INT(FLOAT(-Width) * ((Usuário DPI) / 96)) |
Crescimento do bitmap de saída Y = | INT(FLOAT(-Height) * ((Usuário DPI) / 96)) |
Requerimentos
Exigência | Valor |
---|---|
Cliente mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
Servidor mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |