Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Speichern der Canvas (https://www.delphipraxis.net/163701-speichern-der-canvas.html)

Blubbel 12. Okt 2011 10:45

AW: Speichern der Canvas
 
Gibt es dieses SaveDialog auch fürs Speichern von JPG-Dateien?
Will das irgendwie umändern dass es als jpg gespeichert wird

Luckie 12. Okt 2011 10:47

AW: Speichern der Canvas
 
Der Dialog hat mit dem Dateiformat nichts zu tun. Er dient nur dazu einen Pfad und Dateinamen auszuwählen, nicht mehr und nicht weniger.

Wenn du das Bitmap als JPEG speichern willst, musst du es vorher in das JPEG Format umwandeln. Dazu solltest du genug Beispielcode hier im Forum finden.

Blubbel 12. Okt 2011 10:48

AW: Speichern der Canvas
 
OK, dann versuche ich es mal... dann brauch ich ja auch keine extra Funktion oder Prozedur wenn ich das einfach "ersetzen" kann sozusagen, habe ich das so richtig verstanden? also nach dem Code seh ich mich gleich mal um :)

PS: ja umwandeln... also doch eine extra Sache.... also ist der erste satz von diesem Beitrag mal bitte zu übersehen ;)

Blubbel 12. Okt 2011 12:28

AW: Speichern der Canvas
 
Kann man das nicht einfach so machen:
Delphi-Quellcode:
procedure TForm1.btnSaveClick(Sender: TObject);
var
//  Bitmap : TBitmap;
  jpg: TJpegImage;
begin
  if SaveDialog1.Execute then
    begin
      jpg:=TJpegImage.Create;
      Try
        jpg.Width:=Image1.ClientWidth;
        jpg.Height:=Image1.ClientHeight;
        BitBlt(jpg.Canvas.Handle,0,0,jpg.Width,jpg.Height, //jpg.Canvas.Handle geht nicht
               Image1.Canvas.Handle,0,0,SRCCOPY);
        jpg.SaveToFile(SaveDialog1.FileName + '.jpg');
      Finally
        ShowMessage('Gespeichert!');
        jpg.Free;
      end;
    end;
end;
Wobei
Delphi-Quellcode:
jpg.Canvas.Handle
niht funkrioniert!?

Union 12. Okt 2011 12:36

AW: Speichern der Canvas
 
Statt dem BitBlt mach mal einfach:
Delphi-Quellcode:
jpg.Assign(Image1.Picture.Bitmap);

Blubbel 12. Okt 2011 12:41

AW: Speichern der Canvas
 
Aber was pasiert mit
Delphi-Quellcode:
jpg.Canvas.Handle
? Muss das ganz weg?

Habe es jetzt so
Delphi-Quellcode:
jpg.Assign(Image1.Picture.Bitmap)(jpg.Canvas.Handle,0,0,jpg.Width,jpg.Height, //jpg.Canvas.Handle geht nicht
               Image1.Canvas.Handle,0,0,SRCCOPY);

Union 12. Okt 2011 12:45

AW: Speichern der Canvas
 
Sorry, ich meinte natürlich den ganzen BitBlt. Auch die beiden Zeilen mit der Größenzuweisung können weg.

Blubbel 12. Okt 2011 12:47

AW: Speichern der Canvas
 
Alles klärchen:thumb::thumb:

Blubbel 12. Okt 2011 12:50

AW: Speichern der Canvas
 
Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EInvalidGraphicOperation mit der Meldung 'Die Größe einer JPEG-Grafik kann nicht verändert werden' aufgetreten.
... habs auch schon verändert, dass er die Größe vom Image nimmt aber das will er genauso wenig

Neutral General 12. Okt 2011 12:51

AW: Speichern der Canvas
 
Mal dein Canvas auf ein Bitmap, erstelle ein JPEG, Assigne das Bitmap und speicher das JPEG.


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

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