Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

DeddyH 22. Mär 2008 17:16

Re: Image.Picture als JPEG Speichern????
 
Hast Du denn wenigstens mal einen Breakpoint gesetzt und durchgesteppt, um die betroffene Zeile auszumachen? Dass das am vorherigen Speichern liegen soll, kann ich irgendwie nicht glauben.

[edit] Schlechtschreibung [/edit]

SimStar001 22. Mär 2008 17:18

Re: Image.Picture als JPEG Speichern????
 
also den code hier habe ich wie gesagt jetzt, da der funktioniert!

ich hatte zuvor auch alles so gemacht wie gesagt aber dann kam halt der fehler. die festplatte ist frei, da habsch genug speicher!

das bild speichere ich hier erst, weil ich es dann komischerweise laden und umwandeln kann und dann keine fehlermeldung kommt, gehe ich den direkten weg und mache es so, kommt immer die speichermeldung, was ich net versteh:

Delphi-Quellcode:
              Bild := TJPEGIMAGE.create;
              Bild.Assign(Rechnung.Picture.Bitmap);
bild.CompressionQuality := 75;
Bild.compress;
              Bild.savetofile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(Aktuelle_Seite) + '.jpeg');
              bild.Free;

geht net in meinen kopf rein!

SimStar001 22. Mär 2008 17:19

Re: Image.Picture als JPEG Speichern????
 
ja habsch, es kommt immer in der ZEILE


Delphi-Quellcode:
Bild.compress;
oder halt wenn ich dass Compressieren weglasse bei:

Delphi-Quellcode:
savetofile(....);

dajuhsa 22. Mär 2008 17:36

Re: Image.Picture als JPEG Speichern????
 
ist in
Delphi-Quellcode:
rechnung.picture.bitmap
denn überhaupt ein bild geladen, also assigned?
schreib mal vor deinen speichern-aufruf
Delphi-Quellcode:
if not Assigned(rechnung.picture.bitmap) then
begin
showmessage('MIEEEP!Bild nicht Assigned!');
exit
end;

Namenloser 22. Mär 2008 17:49

Re: Image.Picture als JPEG Speichern????
 
Hast du es mal testweise mit einem kleineren Bitmap versucht? Vielleicht reicht dein Speicher ja wirklich nicht aus.

DeddyH 22. Mär 2008 18:52

Re: Image.Picture als JPEG Speichern????
 
Aber dass mehr Speicher zur Verfügung stehen soll, wenn man die Bitmap vorher auf der HD ablegt, erscheint mir etwas abstrus.

Namenloser 22. Mär 2008 20:01

Re: Image.Picture als JPEG Speichern????
 
Naja, wenn er es als Bitmap speichert landet die direkt auf der Platte, während das JPEG erstmal in den Arbeitsspeicher kommt und das Bitmap komprimiert. Ich weiß nicht, wie viel speicher das ganze benötigt, aber mal mindestens das Doppelte denke ich schon, weil die Daten ja zweimal im Speicher stehen müssen. Wenn das Bitmap c.a. 150mb groß ist, wären das 300mb, also schon recht viel für ein einzelnes Programm.

[edit]ich sollte genauer lesen... sry[/edit]

Schwedenbitter 22. Aug 2008 22:30

Re: Image.Picture als JPEG Speichern????
 
Kann mir bitte auch mal jemand helfen. Ich wollte kein neues Thema aufmachen, weil es hier gut her passt und bestimmt jemand eine Antwort parat hat. Ich habe folgendes geschrieben. In Image1 ist ein Bild drin (sichtbar). Aber meine jpg-Datei ist immer leer (0 Bytes).

Was ist bei mir falsch?

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
Var
   Jpg :TJPEGImage;
begin
   If Not Assigned(Image1.Picture.Graphic) Then
      MessageDlg('Kein Bild im Speicher',mtWarning,[mbOK],0)
   Else
   Begin
      SaveDialog1.Execute;
      If SaveDialog1.FileName='' Then
         MessageDlg('Keine Datei ausgewählt',mtWarning,[mbOK],0)
      Else
      Begin
         If ExtractFileExt(SaveDialog1.FileName)<>'.jpg' then
            SaveDialog1.FileName:=SaveDialog1.FileName+'.jpg';
         Jpg:=TJPEGImage.Create;
         Jpg.Assign(Image1.Picture.Graphic);         // Bild zuweisen
         Jpg.CompressionQuality:=   12;            // 1 mies, 100 am besten
         Jpg.ProgressiveEncoding:=   true;            // Schrittweise Aufbau beim Laden
         Jpg.PixelFormat:=            jf8Bit;         // jf24Bit oder jf8Bit
         Jpg.Compress;                              // Bild komprimieren
         Jpg.SaveToFile(SaveDialog1.FileName);      // Abspeichern
         Jpg.Free;
      End;
   End;
end;
Gruß, Alex

DeddyH 23. Aug 2008 09:01

Re: Image.Picture als JPEG Speichern????
 
Versuch es mal so (Reihenfolge geändert):
Delphi-Quellcode:
procedure TForm36.Button3Click(Sender: TObject);
Var
   Jpg :TJPEGImage;
begin
   If (Not Assigned(Image1.Picture.Graphic)) or Image1.Picture.Graphic.Empty Then
      MessageDlg('Kein Bild im Speicher',mtWarning,[mbOK],0)
   Else
     if SaveDialog1.Execute then
     Begin
       Jpg:=TJPEGImage.Create;
       try
         Jpg.CompressionQuality:=  12;
         Jpg.ProgressiveEncoding:=  true;
         Jpg.PixelFormat:=           jf8Bit;
         Jpg.Assign(Image1.Picture.Graphic);
         Jpg.Compress;
         Jpg.SaveToFile(ChangeFileExt(SaveDialog1.FileName,'.jpg'));    
       finally
         Jpg.Free;
       end;
     End;
end;

FAlter 23. Aug 2008 09:08

Re: Image.Picture als JPEG Speichern????
 
Hi,

Was ist es denn für ein Bils? Afair klappt TJpegFile.Assign nut, wenn ein TBitmap ge-assigned wird. Erzeuge dir euinn neues Birmap, male dort das Bild drauf (TBitmap.Canvas.Draw) und weise das zu, wenn du kein TBitmap hast.

Mfg
FAlter


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.
Seite 3 von 4     123 4      

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