![]() |
bmpZUjpeg ?
Hallo,
Ich möchte mein Image nicht nur als .bmp sondern auch als .jpeg so versuche ich das Image zu convertieren und gleichzeitig speichern :
Delphi-Quellcode:
function BmpToJpeg(bmp:TBitmap):TJpegImage;
begin BmpToJpeg := TJpegImage.Create; BmpToJpeg.Assign(bmp); end; procedure TForm1.Button1Click(Sender: TObject); begin saveDialog1.DefaultExt := '.bmp'; if savedialog1.Execute then begin If ExtractFileExt(SaveDialog1.Filename) = '.bmp' then image1.picture.savetofile(SaveDialog1.FileName); // ok If ExtractFileExt(SaveDialog1.Filename) = '.jpeg' then BmpToJpeg(image1.picture.savetofile(SaveDialog1.FileName)); // Untyped Pointer end; end; end; |
Re: bmpZUjpeg ?
taktaky, der Code ist echt suuuper optimiert!
Aber Scherz beiseite: 1. oben fehlt ein Free 2. überlege mal die Reihenfolge - du willst doch zuerst konvertieren und dann speichern. Nun schau dir mal deine zugehörige Zeile an :stupid: |
Re: bmpZUjpeg ?
Welchen Rückgabetyp hat die Methode SaveToFile von TImage und was für ein Typ erwartet deine Funktion BmpToJpeg?
|
Re: bmpZUjpeg ?
Guck dir mal die Funktionsdeklaration an:
Delphi-Quellcode:
Was du übergibst ist irgendwas, nur kein TBitMap. Lerne endlich mal die Programmier-Grundlagen.
function BmpToJpeg(bmp: TBitmap): TJpegImage;
Und wenn du die Suchfunktion genutzt hättest, hättest du auch eine ordentliche Methode zur Konvertierung gefunden: ![]() |
Re: bmpZUjpeg ?
Abgesehen davon sollte man IMO den FilterIndex des Dialogs auswerten und nicht die Dateiendung (was passiert bei einer Datei "Test.JPG"?).
|
Re: bmpZUjpeg ?
Zitat:
Also die Funktionen bekommt einen Typ von bmp und soll sie in jpeg convertieren Es liegt nicht an die Funktion sondern an die Verknüpfung der Funktion in SaveDialog1 oder : Vorher habe ich immer die gute Funktion verwendet
Delphi-Quellcode:
procedure Bmp2Jpeg(const BmpFileName, JpgFileName: string);
var Bmp: TBitmap; Jpg: TJPEGImage; begin Bmp := TBitmap.Create; Jpg := TJPEGImage.Create; try Bmp.LoadFromFile(BmpFileName); Jpg.Assign(Bmp); Jpg.SaveToFile(JpgFileName); finally Jpg.Free; Bmp.Free; end; end; |
Re: bmpZUjpeg ?
Und warum verwendest du sie jetzt nicht in angepasster Form weiter?
|
Re: bmpZUjpeg ?
Zitat:
Delphi-Quellcode:
Ich möchte nur wissen, wie ich die Funktion bmpTojpeg einbinden kann
procedure TForm1.Button1Click(Sender: TObject);
var Jpeg: TJpegImage; begin saveDialog1.DefaultExt := '.bmp'; if savedialog1.Execute then begin If ExtractFileExt(SaveDialog1.Filename) = '.bmp' then image1.picture.savetofile(SaveDialog1.FileName); // ok If ExtractFileExt(SaveDialog1.Filename) = '.jpeg' then begin Jpeg := TJpegImage.Create; Jpeg.Assign(Image1.Picture.Graphic); Jpeg.SaveToFile(SaveDialog1.Filename); // so ist auch OK Jpeg.Free; end; end; end; Ich muss auch andere Funktionen : BMP2GIF, BMP2TIFF genauso machen Gruß |
Re: bmpZUjpeg ?
Wieso muss das eigentlich eine Funktion sein? Pass doch Deine Procedure einfach an.
|
Re: bmpZUjpeg ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 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