Hallo,
letzter Beitrag zu diesem Thema war vor 6 Monaten, aber vielleicht liest das hier ja jemand und hat einen Tipp.
Ich möchte in eine größere Anzahl JPG-Fotos Text einfügen, z. B. den Dateinamen.
Der folgende Code scheint einwandfrei zu arbeiten, aber leider ist die gespeicherte JPG identisch zu der geladenen, funktioniert also NICHT:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| PROCEDURE TFTextinJPG.Button1Click(Sender: TObject);
CONST Pfad0 = 'D:\Fotos\Delphi\TextinJPG\Test0\'; Pfad1 = 'D:\Fotos\Delphi\TextinJPG\Test1\'; Filename = 'Testbild.JPG'; VAR Bild1, Bild2: tjpegimage;
BEGIN Bild1 := tjpegimage.Create; Bild2 := tjpegimage.Create;
Bild1.LoadFromFile(Pfad0 + Filename); Bild1.Canvas.font.Size := 100; Bild1.Canvas.font.Color := clred; Bild1.Canvas.TextOut(200, 200, Filename); Bild1.SaveToFile(Pfad1 + Filename);
Bild1.Free; Bild2.Free; END; |
Kopiere ich aber das JPG-Bild zur Bearbeitung in eine Bitmap und dann wieder zurück in ein tjpegimage, dann funktioniert es. Leider sind dann die Metadaten des JPG weg, was logisch ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| PROCEDURE TFTextinJPG.Button1Click(Sender: TObject); CONST Pfad0 = 'D:\Fotos\Delphi\TextinJPG\Test0\'; Pfad1 = 'D:\Fotos\Delphi\TextinJPG\Test1\'; Filename = 'Testbild.JPG'; VAR Bild1, Bild2: tjpegimage; bmp: Tbitmap;
BEGIN Bild1 := tjpegimage.Create; Bild2 := tjpegimage.Create; Bmp := TBitmap.Create;
Bild1.LoadFromFile(Pfad0 + Filename); Bmp.Assign(Bild1); Bmp.Canvas.font.Size := 100; Bmp.Canvas.font.Color := clred; Bmp.Canvas.TextOut(200, 200, Filename); Bild2.Assign(Bmp); Bild2.SaveToFile(Pfad1 + Filename);
Bild1.Free; Bild2.Free; Bmp.Free; END; |
Wäre schön, jemand hätte einen Tipp.
Viele Grüße
GuaAck