Hallo,
ich hab erst vor kurzem mit Lazarus zu Programmieren begonnen und steh jetzt vor einem Problem. Ich hab ein Timage mit einem PNG Bild. Darauf zeichne ich mit einem Buttonclick eine Linie per Image1.Canvas.Line(10,10,80,10);. Mit einem zweiten Button möchte ich das Bild mit der gezeichneten Linie speichern per Image1.Picture.Bitmap.SaveToFile('test.png');. Nur leider funktioniert das nicht. Wenn ich Button1 zum Zeichnen der Linie drücke, dann erscheint meine Linie, drücke ich nun Button zwei zum Speichern, verschwindet die Linie wieder und test.png ist ohne Linie. Erst wenn ich das mit den Buttons ein zweites Mal mache, dann zeigt mir test.png die Linie. Auf dem Bildschirm ist die Linie aber fast nicht zu erkennen und sieht aus als ob sie hinter dem Bild liegen würde.
lg
ddog
Problem beim Speichern eines Timage
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Re: Problem beim Speichern eines Timage
Hi,
ich bin zwar auch nicht firm, aber ich würde versuchen, Bild wie auch Linie auf eine Paintbox zu malen und die Paintbox dann zu speichern. Es geht sicher auch anders, aber da musst du auf Schlauere als mich warten.
ich bin zwar auch nicht firm, aber ich würde versuchen, Bild wie auch Linie auf eine Paintbox zu malen und die Paintbox dann zu speichern. Es geht sicher auch anders, aber da musst du auf Schlauere als mich warten.

-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: Problem beim Speichern eines Timage
Hallo,
also ich habs grad mal unter Vista32 und 'ner nicht ganz taufrischen 0.9.27 probiert. Bei mir klappt's ohne Probleme.
Welche Version/welches BS hast du?
also ich habs grad mal unter Vista32 und 'ner nicht ganz taufrischen 0.9.27 probiert. Bei mir klappt's ohne Probleme.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Canvas.Brush.Color:=clblack;
Image1.Canvas.Pen.Color:=clwhite;
Image1.Canvas.Line(10,10,80,10);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Picture.Bitmap.SaveToFile('D:\Temp\test.png');
end;
mfg Ingo
Re: Problem beim Speichern eines Timage
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Bitmap.Canvas.Brush.Color:=clblack;
Image1.Picture.Bitmap.Canvas.Pen.Color:=clwhite;
Image1.Picture.Bitmap.Canvas.Line(10,10,80,10);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Picture.Graphic.SaveToFile('test.png');
end;
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Problem beim Speichern eines Timage
Ich wollte gerade fragen, warum ihr ein (Windows-)Bitmap in eine Datei mit png-Erweiterung speichert... (Dateinamen sind zwar eig. egal, aber wenn ihr das so wie theo macht, siehts besser aus (man könnte auch Picture.PNG.SaveToFile() verwenden).theo hat geschrieben:Code: Alles auswählen
procedure TForm1.Button2Click(Sender: TObject); begin Image1.Picture.Graphic.SaveToFile('test.png'); end;
Alternativ könnte man aber auch direkt auf den Canvas des Bitmaps zeichnen:
Code: Alles auswählen
with Image1.Picture.Bitmap.Canvas do begin
Line(10,80,80,10);
end;
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 18
- Registriert: Di 6. Jan 2009, 08:32
- OS, Lazarus, FPC: Mac OSX 10.9 (L 1.0.14 FPC 2.6.2)
Re: Problem beim Speichern eines Timage
Vielen Dank, hat mir sehr geholfen! Jetzt funktioniert alles wie es soll! Ich bin froh, dass ich dieses Forum gefunden hab, sonst hätt ich Lazarus wohl schon wieder von der Platte gelöscht!
lg
ddog
lg
ddog