Efeito de desfoque direcional
O efeito de desfoque direcional é semelhante a desfoque gaussiano, exceto que você pode distorcer o desfoque em uma direção específica. Você pode usar esse efeito para fazer com que uma imagem pareça que está em movimento ou para enfatizar uma imagem animada.
O CLSID para esse efeito é CLSID_D2D1DirectionalBlur.
- de imagem de exemplo
- propriedades do efeito
- modos de otimização
- modos de borda
- de bitmap de saída
- requisitos de
- tópicos relacionados
Imagem de exemplo
Antes |
---|
![]() |
Depois |
![]() |
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 de efeito
Nome de exibição e enumeração de índice | Descrição |
---|---|
StandardDeviation 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 desabilita esse efeito. O tipo é FLOAT. O valor padrão é 3.0f. |
Ângulo D2D1_DIRECTIONALBLUR_PROP_ANGLE |
O ângulo do desfoque relativo ao eixo x, na direção anti-horário. As unidades são especificadas em graus. O kernel de desfoque é gerado pela primeira vez usando o mesmo processo do efeito desfoque gaussiano. Os valores do kernel são transformados de acordo com o ângulo de desfoque. O tipo é FLOAT. O valor padrão é 0,0f. |
Optimizaçã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, flexível ou dura. 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
Nome | Descrição |
---|---|
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED | Aplica otimizações internas, como pré-dimensionamento em raios relativamente pequenos. Usa filtragem linear. |
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED | Usa os mesmos limites de otimização que o modo de velocidade, mas usa a filtragem trilinear. |
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY | Usa apenas otimizações internas com raios de desfoque grandes, em que as aproximações são menos propensas a serem visíveis. Usa filtragem trilinear. |
Modos de borda
Nome | Descrição |
---|---|
D2D1_BORDER_MODE_SOFT | O efeito inclui a imagem com pixels pretos transparentes, pois aplica o kernel 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 desfoque, ele estende a imagem de entrada com uma transformação de borda de 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 aumentará pelo tamanho do kernel desfoque, representado em pixels. Essas equações podem ser usadas para calcular o tamanho do bitmap de saída.
Requisito | Valor |
---|---|
Crescimento do Bitmap de Saída X | StandardDeviation (DIPs) * 6 * ((DPI do Usuário) / 96) * cos(Angle)) |
Crescimento de bitmap de saída Y | StandardDeviation (DIPs) * 6 * ((DPI do Usuário) / 96) * sin(Angle)) |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Servidor mínimo com suporte | Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |