AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImage Speichern

Ein Thema von Gehstock · begonnen am 11. Jul 2006 · letzter Beitrag vom 21. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

TImage Speichern

  Alt 11. Jul 2006, 08:26
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
Marcel
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TImage Speichern

  Alt 11. Jul 2006, 08:40
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
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#3

Re: TImage Speichern

  Alt 11. Jul 2006, 08:44
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""
Marcel
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: TImage Speichern

  Alt 11. Jul 2006, 08:59
Eher so:

Delphi-Quellcode:
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;
Getippt und nicht getestet.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#5

Re: TImage Speichern

  Alt 11. Jul 2006, 09:01
Gibt es das Image1 (sammt Inhalt) schon?

dann sollte das nach "if SaveDialog.Execute then" funtzen
Delphi-Quellcode:

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;
EDIT: ??? Keine rote box?
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#6

Re: TImage Speichern

  Alt 11. Jul 2006, 09:23
@marabu klappt net
@TeronG genau so

danke euch beiden
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#7

Re: TImage Speichern

  Alt 11. Jul 2006, 09:25
Zitat von Gehstock:
@marabu klappt net
@TeronG genau so

danke euch beiden
mag sein .. ich glaub aber nicht, daß dir dein Delphi auch "klappt net" gesagt hat
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
naudoc

Registriert seit: 7. Nov 2006
92 Beiträge
 
#8

Re: TImage Speichern

  Alt 18. Jun 2007, 22:17
Hallo,
ich habe den obigen Quelltext für mich so verändert:
Delphi-Quellcode:
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;
Dann kommt beim Klick auf den Button jedoch folgender Fehler:

---------------------------
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!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: TImage Speichern

  Alt 18. Jun 2007, 22:20
Vergleiche einmal genau deine und TeronGs "Assign"-Zeile.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
naudoc

Registriert seit: 7. Nov 2006
92 Beiträge
 
#10

Re: TImage Speichern

  Alt 18. Jun 2007, 22:30
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz