AGB  ·  Datenschutz  ·  Impressum  







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

bmpZUjpeg ?

Ein Thema von taktaky · begonnen am 2. Jul 2008 · letzter Beitrag vom 2. Jul 2008
Antwort Antwort
taktaky
(Gast)

n/a Beiträge
 
#1

bmpZUjpeg ?

  Alt 2. Jul 2008, 11:31
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) = '.bmpthen
          image1.picture.savetofile(SaveDialog1.FileName); // ok
      If ExtractFileExt(SaveDialog1.Filename) = '.jpegthen
         BmpToJpeg(image1.picture.savetofile(SaveDialog1.FileName)); // Untyped Pointer

end;
end;
end;
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 11:33
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
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 11:35
Welchen Rückgabetyp hat die Methode SaveToFile von TImage und was für ein Typ erwartet deine Funktion BmpToJpeg?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 11:35
Guck dir mal die Funktionsdeklaration an:

function BmpToJpeg(bmp: TBitmap): TJpegImage; Was du übergibst ist irgendwas, nur kein TBitMap. Lerne endlich mal die Programmier-Grundlagen.

Und wenn du die Suchfunktion genutzt hättest, hättest du auch eine ordentliche Methode zur Konvertierung gefunden: Bitmap -> JPeg umwandlung
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#5

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 11:47
Abgesehen davon sollte man IMO den FilterIndex des Dialogs auswerten und nicht die Dateiendung (was passiert bei einer Datei "Test.JPG"?).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#6

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 11:48
Zitat von Luckie:
Welchen Rückgabetyp hat die Methode SaveToFile von TImage und was für ein Typ erwartet deine Funktion BmpToJpeg?
Image-Type ist BMP
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;
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#7

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 11:50
Und warum verwendest du sie jetzt nicht in angepasster Form weiter?
Ralph
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#8

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 11:55
Zitat von taaktaak:
Und warum verwendest du sie jetzt nicht in angepasster Form weiter?
Ich kann das Image Ohne Funktion bmpTojpeg als jpeg speichern und zwar so :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Jpeg: TJpegImage;
begin
  saveDialog1.DefaultExt := '.bmp';
  if savedialog1.Execute then
    begin
      If ExtractFileExt(SaveDialog1.Filename) = '.bmpthen
          image1.picture.savetofile(SaveDialog1.FileName); // ok
If ExtractFileExt(SaveDialog1.Filename) = '.jpegthen
begin
  Jpeg := TJpegImage.Create;
  Jpeg.Assign(Image1.Picture.Graphic);
  Jpeg.SaveToFile(SaveDialog1.Filename); // so ist auch OK
  Jpeg.Free;
end;

end;
end;
Ich möchte nur wissen, wie ich die Funktion bmpTojpeg einbinden kann
Ich muss auch andere Funktionen : BMP2GIF, BMP2TIFF genauso machen

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#9

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 12:01
Wieso muss das eigentlich eine Funktion sein? Pass doch Deine Procedure einfach an.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: bmpZUjpeg ?

  Alt 2. Jul 2008, 12:16
Zitat von taktaky:
Zitat von Luckie:
Welchen Rückgabetyp hat die Methode SaveToFile von TImage und was für ein Typ erwartet deine Funktion BmpToJpeg?
Image-Type ist BMP
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 :
Richtig, denn die Methode SaveToFile ist eine Prozedur und hat keinen Rückgabetyp. Du übergibst also Unsinn an die Funktion.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:30 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