Partilhar via


Efeito de desfoque direcional

O efeito de desfoque direcional é semelhante ao de desfoque gaussiano, exceto que você pode inclinar o desfoque em uma direção específica. Você pode usar esse efeito para fazer uma imagem parecer como se estivesse em movimento ou para enfatizar uma imagem animada.

O CLSID para este efeito é CLSID_D2D1DirectionalBlur.

Imagem de exemplo

Antes
a imagem antes do efeito.
Após
a imagem após a transformação.
ComPtr<ID2D1Effect> directionalBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DirectionalBlur, &directionalBlurEffect);

directionalBlurEffect->SetInput(0, bitmap);
directionalBlurEffect->SetValue(D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION, 7.0f);

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

Propriedades do efeito

Nome para exibição e enumeração de índice Descrição
Desvio padrão
D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION
A quantidade de desfoque a ser aplicada à imagem. Você pode calcular o raio de desfoque do kernel multiplicando o desvio padrão por 3. As unidades do desvio padrão e do raio de desfoque são DIPs. Um valor de 0 DIPs desativa esse efeito. O tipo é FLOAT.
O valor padrão é 3.0f.
Ângulo
D2D1_DIRECTIONALBLUR_PROP_ANGLE
O ângulo do desfoque em relação ao eixo x, no sentido anti-horário. As unidades são especificadas em graus.
O kernel de desfoque é gerado primeiro usando o mesmo processo que para o efeito de de desfoque gaussiano. Os valores do kernel são então transformados de acordo com o ângulo de desfoque.
O tipo é FLOAT.
O valor padrão é 0.0f.
Otimização
D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION
O modo de otimização. Consulte Modos de otimização para obter mais informações.
O tipo é D2D1_DIRECTIONALBLUR_OPTIMIZATION.
O valor padrão é D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE
O modo usado para calcular a borda da imagem, suave ou hard. Consulte Modos de borda para obter mais informações.
O tipo é D2D1_BORDER_MODE.
O valor padrão é D2D1_BORDER_MODE_SOFT.

Modos de otimização

Designação Descrição
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Aplica otimizações internas, como pré-dimensionamento em raios relativamente pequenos. Utiliza filtragem linear.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Usa os mesmos limites de otimização do modo Velocidade, mas usa filtragem trilinear.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Usa apenas otimizações internas com grandes raios de desfoque, onde as aproximações são menos prováveis de serem visíveis. Utiliza filtragem trilinear.

Modos de borda

Designação Descrição
D2D1_BORDER_MODE_SOFT O efeito preenche a imagem com pixels pretos transparentes à medida que aplica o kernel de desfoque, resultando em uma borda suave.
D2D1_BORDER_MODE_HARD O efeito fixa a saída ao tamanho da imagem de entrada. Quando o efeito aplica o kernel de desfoque, ele estende a imagem de entrada com uma transformação de borda do tipo espelho para amostras fora dos limites de entrada.

Bitmap de saída

O tamanho do bitmap de saída aumenta com base no desvio padrão, no ângulo do efeito e no modo de borda. Se o modo de borda estiver definido como D2D1_BORDER_MODE_SOFT o tamanho do bitmap de saída aumenta pelo tamanho do kernel de desfoque, representado em pixels. Essas equações podem ser usadas para calcular o tamanho do bitmap de saída.

Exigência Valor
Crescimento de bitmap de saída X Desvio padrão (DIPs) * 6 * ((DPI do usuário) / 96) * cos(Ângulo))
Crescimento de bitmap de saída Y Desvio Padrão (DIPs) * 6 * ((DPI do usuário) / 96) * sin(Ângulo))

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

ID2D1Effect