Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#29

AW: Canvas.TextOut mit Text Shadow-Erweiterung

  Alt 29. Jul 2011, 14:43
Für alle die sich mit AlphaBlend rumärgern müssen, hier noch die Änderung am urspünglichen Code:
Delphi-Quellcode:
var
  Alpha: word;
{...}
      for Col in [0 .. Buffer.Width - 1] do
      begin
        BufferPixel := @BufferScanline[Col];
        MaskPixel := @MaskScanline[Col];
        Alpha := (MaskPixel.rgbtRed + MaskPixel.rgbtGreen + MaskPixel.rgbtBlue) div 3;
        // premultiplied alpha, red, green and blue channel
        BufferPixel.rgbRed := (BufferPixel.rgbRed * Alpha) shr 8;
        BufferPixel.rgbGreen := (BufferPixel.rgbGreen * Alpha) shr 8;
        BufferPixel.rgbBlue := (BufferPixel.rgbBlue * Alpha) shr 8;
        BufferPixel.rgbReserved := Alpha;
      end;
  Mit Zitat antworten Zitat