Compartilhar via


Efeito de desfoque gaussiano

Use o efeito de desfoque gaussiano para criar um desfoque com base na função gaussiana sobre toda a imagem de entrada.

Você pode usar esse efeito para criar brilhos e soltar sombras e usar o composição efeito para aplicar o resultado à imagem original. Ele é útil no processamento de fotos para filtros como realces e sombras. Você pode usar a saída desse efeito para entrada em efeitos de iluminação, como o de Iluminação Especular ou efeitos de iluminação difusa, porque o canal alfa também está desfocado e os efeitos de iluminação usam o canal alfa para determinar a geometria da superfície como um mapa de altura.

Esse efeito é usado pelo efeito sombra interno.

O CLSID para esse efeito é CLSID_D2D1GaussianBlur.

  • 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
a imagem antes do efeito.
Depois
a imagem após a transformação.
ComPtr<ID2D1Effect> gaussianBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GaussianBlur, &gaussianBlurEffect);

gaussianBlurEffect->SetInput(0, bitmap);
gaussianBlurEffect->SetValue(D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION, 3.0f);

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

Propriedades de efeito

Nome de exibição e enumeração de índice Descrição
StandardDeviation
D2D1_GAUSSIANBLUR_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 zero DIPs desabilita totalmente esse efeito. O tipo é FLOAT.
O valor padrão é 3.0f.
Optimização
D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION
O modo de otimização. Consulte modos de otimização para obter mais informações. O tipo é D2D1_GAUSSIANBLUR_OPTIMIZATION.
O valor padrão é D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_GAUSSIANBLUR_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_GAUSSIANBLUR_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

A saída desse efeito pode ser maior que o bitmap de entrada com base no raio de desfoque 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 de desfoque, representado em pixels. Esta tabela fornece uma equação que você pode usar para calcular o bitmap de saída.

Output bitmap growth (X and Y) = StandardDeviation (DIPs)*6*((User DPI)/96)

Portanto, se o tamanho da imagem aumentar em 10 pixels em cada direção, o canto superior esquerdo da imagem estará localizado em (-5, -5) enquanto o canto inferior direito estará em (105, 105).

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

ID2D1Effect