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?