Compartilhar via


BLENDFUNCTION

Windows Mobile SupportedWindows Embedded CE Supported

9/9/2008

Esta estrutura controla misturando especificando as funções blending para bitmaps origem e destino.

Syntax

typedef struct _BLENDFUNCTION {
  BYTE  BlendOp;
  BYTE  BlendFlags;
  BYTE  SourceConstantAlpha;
  BYTE  AlphaFormat;
}BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;

Os membros

  • BlendOp
    Especifica a operação de combinação origem. Atualmente, a única origem e destino combinação operação que foi definida é AC_SRC_OVER. Para obter detalhes, consulte a seguinte seção Comentários.
  • BlendFlags
    Deve ser zero.
  • SourceConstantAlpha
    Especifica uma alfa valor de transparência para ser usado no bitmap de origem inteira. O SourceConstantAlpha valor é combinado com qualquer por - pixel alfa valores no bitmap de origem. Se você definir SourceConstantAlpha como 0, presume-se que a imagem é transparente. Quando você apenas desejar usar por-pixel alfa definir valores, o SourceConstantAlpha valor para 255 (opacidade).
  • AlphaFormat
    Este membro controla a maneira que de bitmaps origem e destino são interpretados. A seguinte tabela mostra o valor para AlphaFormat.

    Valor Descrição

    AC_SRC_ALPHA

    Este sinalizador é definido quando o bitmap tem uma canalizar alfa (isto é, por-pixel alfa). Porque este API usa alfa premultiplied, o vermelho, verde e azul canalizar valores o bitmap devem ser premultiplied com a alfa canalizar valor. De exemplo, se o alfa é canalizar valor x, o vermelho, verdes e azuis canais devem ser multiplicados por x e divididos pelo 0xFF antes de chamar.

Remarks

Quando o AlphaFormat parâmetro for AC_SRC_ALPHA, o bitmap origem deve ser bpp 32. Se ele não estiver, a função AlphaBlend falhará.

Quando o BlendOp parâmetro é AC_SRC_OVER, o bitmap origem é colocado sobre o bitmap destino baseia a alfa valores de pixels de origem.

Se o bitmap origem não tiver por-pixel alfa valor (ou seja, AC_SRC_ALPHA não é definido), o SourceConstantAlpha valor determina a combinação de origem e destino bitmaps, como mostra a seguinte tabela. Observe que SCA é usada para SourceConstantAlpha aqui. Além disso, SCA é dividida por 255 porque ele tem um valor que varia de 0 a 255.

Dst.Red   = Src.Red   * (SCA/255.0) + Dst.Red   * (1.0 - (SCA/255.0)) 
Dst.Green = Src.Green * (SCA/255.0) + Dst.Green * (1.0 - (SCA/255.0)) 
Dst.Blue  = Src.Blue  * (SCA/255.0) + Dst.Blue  * (1.0 - (SCA/255.0)) 

Se o bitmap destino possuir uma alfa canalizar e, em seguida, a combinação é da seguinte maneira.

Dst.Alpha = Src.Alpha * (SCA/255.0) + Dst.Alpha * (1.0 - (SCA/255.0)) 

Se não usar o bitmap origem SourceConstantAlpha (isto é, ela é igual a 0xFF), o por-alfa pixel determina a combinação de origem e destino bitmaps, conforme mostrado pelo seguinte equações.

Dst.Red   = Src.Red   + (1 - Src.Alpha) * Dst.Red 
Dst.Green = Src.Green + (1 - Src.Alpha) * Dst.Green 
Dst.Blue  = Src.Blue  + (1 - Src.Alpha) * Dst.Blue 

Se o bitmap destino possuir uma alfa canalizar e, em seguida, a combinação é da seguinte maneira.

Dest.alpha = Src.Alpha + (1 - SrcAlpha) * Dst.Alpha 

Se a origem tem ambos o SourceConstantAlpha (ou seja, ele não for 0xFF) e por-pixel alfa, a origem é Pre-multiplied pela SourceConstantAlpha e, em seguida, a combinação é baseada na por-pixel alfa. O seguinte apresentação equações isso. Observe que SourceConstantAlpha é dividida por 255 porque ele tem um valor que varia de 0 a 255.

Src.Red   = Src.Red   * SourceConstantAlpha / 255.0; 
Src.Green = Src.Green * SourceConstantAlpha / 255.0; 
Src.Blue  = Src.Blue  * SourceConstantAlpha / 255.0; 
Src.Alpha = Src.Alpha * SourceConstantAlpha / 255.0; 
Dst.Red   = Src.Red   + (1 - Src.Alpha) * Dst.Red 
Dst.Green = Src.Green + (1 - Src.Alpha) * Dst.Green 
Dst.Blue  = Src.Blue  + (1 - Src.Alpha) * Dst.Blue 
Dst.Alpha = Src.Alpha + (1 - Src.Alpha) * Dst.Alpha 

Requirements

Header windows.h
Windows Embedded CE Windows CE 5.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

GDI Structures
AlphaBlend

Concepts

Creating Bitmaps