Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Leeres TPNGImage erzeugen

  Alt 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)
  Mit Zitat antworten Zitat