Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Image.Picture als JPEG Speichern???? (https://www.delphipraxis.net/110613-image-picture-als-jpeg-speichern.html)

SimStar001 20. Mär 2008 19:47

Re: Image.Picture als JPEG Speichern????
 
also jetzt kommt ne fehler meldung, dass net genug Speicher vorhanden ist!



keine ahnung was nu los ist!

Fussball-Robby 20. Mär 2008 19:50

Re: Image.Picture als JPEG Speichern????
 
Zeig mal den Code

Die Muhkuh 20. Mär 2008 19:51

Re: Image.Picture als JPEG Speichern????
 
Festplattenspeicher oder RAM?

SimStar001 20. Mär 2008 19:52

Re: Image.Picture als JPEG Speichern????
 
Fehlermeldung


EOutOfResources Für diesen Befehl ist nicht genug Speicher vorhanden!

hier ist der Code

Delphi-Quellcode:
Bild:=TJPEGImage.Create;
          Try
          Bild.Assign(form16.Rechnung.picture.bitmap);
          Bild.SaveToFile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Test.jpeg');
          finally
          showmessage('fertig');
          end;

turboPASCAL 21. Mär 2008 05:30

Re: Image.Picture als JPEG Speichern????
 
1. Wieviel RAM hast du ?
2. Du hast im finally - Teil Bild.Free vergessen.

Wenn du Resourcen nicht wieder frei gibst können solche Fehler/Warnungen entstehen.

Ich würde es so machen:


Delphi-Quellcode:
procedure ...
var
  JpegBild: TJPEGImage;
begin
  //...

  with Form16.Rechnung.Picture do
  begin
    if Assigned(Bitmap) then
    begin
      JpegBild := TJPEGImage.Create;
      try
        JpegBild.Assign(Bitmap);
        JpegBild.CompressionQuality := 75; // 1 schlechte bis 100 gute JPEG.Qualit.
        JpegBild.Compress;
        JpegBild.SaveToFile(ExtractFilePath(ParamStr(0)) + '\Daten\Rechnungen\Test.jpeg');
      finally
        JpegBild.Free; // <--<<
      end;
      ShowMessage('Fertig.');
    end else
    begin
      ShowMessage('Fehler: Kein Bitmap in Image.');
    end;
  end;

  //...

SimStar001 21. Mär 2008 09:36

Re: Image.Picture als JPEG Speichern????
 
Ok vielen dank, ich werde das gleich mal ausprobieren!

SimStar001 22. Mär 2008 16:40

Re: Image.Picture als JPEG Speichern????
 
klappt leider immernoch net!????????????????????????


was nun!? :?: :?: :?: :?:

dajuhsa 22. Mär 2008 16:46

Re: Image.Picture als JPEG Speichern????
 
immernoch der gleiche fehler? zeig mal neuen code :-)

SimStar001 22. Mär 2008 16:58

Re: Image.Picture als JPEG Speichern????
 
ich versteh net warum, wenn ich wie jetzt bei meinem code das bild vorher speichere, dann geht das wunderbar, aber dauert ewig!


hier ist der jetztige code:
Delphi-Quellcode:

// Seite Speichern zum drucken
              Rechnung.Picture.Graphic.savetofile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(Aktuelle_Seite) + '.bmp');
              Bild := TJPEGIMAGE.create;
              Bild.Assign(Rechnung.Picture.Bitmap);
              Bild.savetofile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(Aktuelle_Seite) + '.jpeg');
              bild.Free;
              deletefile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(Aktuelle_Seite) + '.bmp');

und ich will genau das speichern der bmp auf festplatte umgehen, nur zeigt er mir wenn ichs wie weiter vorn beschrieben mache immer den fehler mit dem speicher an!

dajuhsa 22. Mär 2008 17:09

Re: Image.Picture als JPEG Speichern????
 
1.warum speicherst du es erst als bmp und löschst es danach gleich wieder?
2.außerdem solltest du assign und savetofile in einen try-block setzen und das free in einen finally-block, wenn jetzt im try-block etwas schiefgeht, wird der finally-block ausgefürt und das objekt zerstört, damit kein speicherloch entsteht.
3.Außerdem solltest du Compress anwenden, sonst wird der Speicherplatzverbrauch nicht sonderlich reduziert (=> dauert lange).
4.Vielleicht ist ja auch deine Festplatte voll(was von deinem riesigen Bitmap kommen kann :mrgreen: ,siehe dazu auch #1), ansonsten kann ich dir leider nicht helfen


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.
Seite 2 von 4     12 34      

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