Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Leeres TPNGImage erzeugen
28. Sep 2012, 10:51
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var Img: TPNGImage;
Bild: TPngImage;
i:Integer;
begin
Bild:=TPNGImage.Create;
Bild.LoadFromFile('C:\Icons\IconCollection\ix_ap_all\128x128\shadow\add.png');
Img:=TPNGImage.CreateBlank(COLOR_RGBAlpha, 8, Bild.Width , Bild.Height);
Img.CreateAlpha;
BitBlt (Img.Canvas.Handle, 0 , 0 , Bild.Width, Bild.Height, Bild.Canvas.Handle, 0, 0, SRCCOPY);
For I := 0 To Bild.Width - 1 Do
CopyMemory (Img.AlphaScanline [i], pByte (dword (Bild.AlphaScanline [i])), Bild.Width);
Img.Canvas.Pen.Color:=clLime;
Img.Canvas.MoveTo(0, 0);
Img.Canvas.LineTo(50, 50);
Canvas.Draw(20, 20, IMG); // Ausgabe auf dem Form...
end;
Ein Problem ist die Beschränkung des TCanvas bezüglich des Alphakanals, Du siehst die gemalten Linien nur wo Alpha>0, hier könnte GDI+ helfen, welches mit Alphakanälen umgehen kann.
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|