Einzelnen Beitrag anzeigen

Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Leeres TPNGImage erzeugen

  Alt 28. Sep 2012, 09:16
Irgendwie hab ich so meine Probleme ein leeres, transparentes TPNGImage zu erzeugen in dem ich dann zeichnen kann.

Ich erhalte zwar ein leeres, transparentes Image in den richtigen Abmessungen aber der Rest schlägt fehl. Lade ich ein vorhandenes Bild von der Platte wird meine Linie darauf angezeigt.

Hier mal mein Versuchsaufbau.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Img: TPNGImage;
    Bild: TPngImage;
begin
  Bild:=TPNGImage.Create;
  Bild.LoadFromFile('c:\dings\box.png');

  Img:=TPNGImage.Create;
  Img.CreateBlank(Bild.Header.ColorType, Bild.Header.BitDepth, Bild.Width , Bild.Height);
  Img.CreateAlpha;

// Img.Assign(Bild); // Dann funktionierts. Das will ich aber nicht.

  // irgendwas mit Img machen
  Img.Canvas.CopyMode:= cmSrcCopy;
  Img.Canvas.Draw(0, 0, Bild);
  Img.Draw(Bild.Canvas, Rect(0, 0, Bild.Width, Bild.Height));

  Img.Canvas.Pen.Color:=clBlack;
  Img.Canvas.MoveTo(0, 0);
  Img.Canvas.LineTo(50, 50);

  Self.Canvas.Draw(20, 20, Img); // Ausgabe auf dem Form...
  Img.SaveToFile('c:\dings\box2.png'); // ... und zur Kontrolle speichern - beides leer
end;
Wo ist mein Fehler?

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat