![]() |
TImage Speichern
Ich möchte den Inhalt eines TImages per dialog als *.jpg speichern. Der Dialog klappt schonmal nur weiß er noch nicht was er speichern soll
|
Re: TImage Speichern
Guten Morgen.
Über den Dialog ermittelst du nur den gewünschten Speicherort (filename). Du musst die Unit JPeg einbinden, das Bitmap aus der TImage-Komponente per Assign() der JPegImage-Komponente zuweisen und dann kannst du mit der Methode SaveToFile() die JPG-Datei erstellen. Grüße vom marabu |
Re: TImage Speichern
Delphi-Quellcode:
procedure TFormMain.Button27Click(Sender: TObject);
begin with SaveDialog do begin FilterIndex:=1; FileName := IniFile.ReadString('Setup','Screen,+1','Screen.jpg'); InitialDir := ExtractFilePath(FileName); FileName := ExtractFileName(FileName); if InitialDir = '' then IniFile.ReadString('Setup','DirOld','.\'); if not DirectoryExists(InitialDir) then InitialDir := IniFile.ReadString('Setup','DirOld','.\'); DefaultExt := 'jpg'; Filter := 'Jpg (*.Jpg)|*.Jpg|All files (*.*)|*.*'; Options:=Options+[ofFileMustExist]-[ofHideReadOnly] +[ofNoChangeDir]-[ofNoLongNames]-[ofNoNetworkButton]-[ofHideReadOnly] -[ofOldStyleDialog]-[ofOverwritePrompt]+[ofPathMustExist] -[ofReadOnly]-[ofShareAware]-[ofShowHelp]; Title:='Screen Speichern'; end;//with if SaveDialog.Execute then begin [color=#009fff]Image1.Create(SaveDialog.FileName,fmCreate);[/color] exit; end; end; hab es so erzeugt aber "Incompitable types "TComponent" and "TFilename"" |
Re: TImage Speichern
Eher so:
Delphi-Quellcode:
Getippt und nicht getestet.
uses
JPEG; procedure TFormMain.Button27Click(Sender: TObject); var jpg: TJpegImage; begin with SaveDialog do begin // ... if Execute then begin jpg := tJpegImage.Create; jpg.Assign(Image1.Picture.Bitmap); jpg.SaveToFile(FileName); jpg.Free; end; end; end; marabu |
Re: TImage Speichern
Gibt es das Image1 (sammt Inhalt) schon?
dann sollte das nach "if SaveDialog.Execute then" funtzen
Delphi-Quellcode:
EDIT: ??? Keine rote box?uses jpeg, ... var JPGBild : TJPEGImage; ... with JPGBild do begin JPGBild := TJPEGImage.Create; //JPG erstellen Assign(Image1.Picture); //JPG die Bilddaten vom Image übergeben SaveToFile(SaveDialog.FileName); // Speichern mit dem Filename vom SaveDialog Free; // freigeben ... end; |
Re: TImage Speichern
@marabu klappt net
@TeronG genau so danke euch beiden |
Re: TImage Speichern
Zitat:
|
Re: TImage Speichern
Hallo,
ich habe den obigen Quelltext für mich so verändert:
Delphi-Quellcode:
Dann kommt beim Klick auf den Button jedoch folgender Fehler:
procedure TForm1.Graphalsjpgspeichern1Click(Sender: TObject);
begin with JPGBild do begin JPGBild := TJPEGImage.Create; //JPG erstellen Assign(Image2); //JPG die Bilddaten vom Image übergeben SaveToFile(SaveDialog1.FileName); // Speichern mit dem Filename vom SaveDialog Free; // freigeben ... end; end; --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: 'TImage kann nicht zu TJPEGImage zugewiesen werden'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- Was habe ich falsch gemacht? Hilfe wäre nett... Danke! |
Re: TImage Speichern
Vergleiche einmal genau deine und TeronGs "Assign"-Zeile.
|
Re: TImage Speichern
Ja, aber dann kommt ne andre Fehlermeldung..
und: gibt das picture auch die selbst(über canvas) gemalten Dinge ab? DAnke! EDIT: Hier der Fehler: --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: 'TPicture kann nicht zu TJPEGImage zugewiesen werden'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- Danke nochmal! mfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz