Partilhar via


Efeito de brilho

Use o efeito de brilho para controlar o brilho da imagem.

O CLSID para este efeito é CLSID_D2D1Brightness.

Imagem de exemplo

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

brightnessEffect->SetValue(D2D1_BRIGHTNESS_PROP_BLACK_POINT, D2D1::Vector2F(0.0f, 0.2f));

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

Propriedades do efeito

Nome de exibição da propriedade Tipo e valor padrão Descrição
Ponto Branco
D2D1_BRIGHTNESS_PROP_WHITE_POINT
D2D1_VECTOR_2F
{1.0f, 1.0f}
A parte superior da curva de transferência de brilho. O ponto branco ajusta a aparência das partes mais brilhantes da imagem. Esta propriedade é para o valor x e o valor y, nessa ordem. Cada um dos valores desta propriedade está entre 0 e 1, inclusive.
Ponto BlackPoint
D2D1_BRIGHTNESS_PROP_BLACK_POINT
D2D1_VECTOR_2F
{0.0f, 0.0f}
A parte inferior da curva de transferência de brilho. O ponto preto ajusta a aparência das partes mais escuras da imagem. Esta propriedade é para o valor x e o valor y, nessa ordem. Cada um dos valores desta propriedade está entre 0 e 1, inclusive.

Esse efeito usa os pontos brancos e pretos especificados para gerar uma função de transferência usada para ajustar o bitmap. A equação seguinte descreve a função de transferência. As intensidades de entrada são definidas entre 0 e 1.

algoritmo de brilho

O algoritmo de efeito implementa uma equação que cria a função de transferência. Usamos esta função para ajustar os pixels da imagem. Os valores x e y do ponto preto e do ponto branco são as coordenadas em duas dimensões que estão conectadas para formar a transformação. Cada parte da equação de saída final:

  1. Converte os dados da imagem do espaço linear para o espaço não linear usando esta equação:função auxiliar 1

  2. Ajusta a imagem de acordo com estes valores:

    • de entrada são os valores de intensidade de pixel da imagem de entrada de 0 a 1.

    • *Branco Pt. (x, y)*a localização da curva de transformação para intensidades de pixel mais brilhantes.

    • Preto Pt. (x, y) é a localização da curva de transformação para intensidades de pixel mais fracas.

  3. Converte os dados da imagem de volta para o espaço linear usando esta equação: função auxiliar 2

A equação de saída final e as partes componentes são mostradas aqui.

os cálculos completos para ajuste de brilho

Bitmap de saída

O tamanho do bitmap de saída é o mesmo que o tamanho do bitmap de entrada.

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