Einzelnen Beitrag anzeigen

Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Semitransparente Fenster mittels (Update-)LayeredWindow

  Alt 29. Okt 2010, 14:52
Ich hab's!

Hab mehr durch Zufall herausgefunden, dass man die RGB-Werte jeweils mit dem Alpha-Wert/255 multiplizieren muss, damit das Ergebnis stimmt:

Delphi-Quellcode:
procedure TfrmMain.PaintBMP;
var pBMP : PRGBLine;
var x,y : integer;
begin
     //--
     for y := 0 to 255 do
     begin
          pBMP := bgBMP.ScanLine[y];
          //
          for x := 0 to 255 do
          begin
               pBMP[x].rgbReserved := 255-y;
               //
               pBMP[x].rgbRed := Byte(Round((pBMP[x].rgbRed)*(pBMP[x].rgbReserved / 255)));
               pBMP[x].rgbGreen := Byte(Round((pBMP[x].rgbGreen)*(pBMP[x].rgbReserved / 255)));
               pBMP[x].rgbBlue := Byte(Round((pBMP[x].rgbBlue)*(pBMP[x].rgbReserved / 255)));
          end;
     end;
     //
     Display;
end;
Das Ergebnis schaut dann so aus wie im Anhang.

Danke nochmal an Bummi für die Mühe

Patti
Miniaturansicht angehängter Grafiken
richtig2.jpg  
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat