Compartilhar via


Efeito de brilho

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

O CLSID para esse efeito é CLSID_D2D1Brightness.

Imagem de exemplo

Antes
a imagem antes do efeito.
After (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
WhitePoint
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. Essa propriedade é para o valor x e o valor y, nessa ordem. Cada um dos valores dessa propriedade está entre 0 e 1, inclusive.
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. Essa propriedade é para o valor x e o valor y, nessa ordem. Cada um dos valores dessa propriedade está entre 0 e 1, inclusive.

Esse efeito usa os pontos em branco e preto especificados para gerar uma função de transferência usada para ajustar o bitmap. A próxima equação 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 essa função para ajustar os pixels de 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 de imagem de espaço linear em espaço não linear usando esta função equação:auxiliar 1

  2. Ajusta a imagem de acordo com estes valores:

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

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

    • Pt preto. (x, y) é o local da curva de transformação para intensidades de pixel mais esmaecidas.

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

A equação de saída final e as partes do componente 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.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 e Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store]
Servidor mínimo com suporte Windows 8 e Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store]
Cabeçalho d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect