Thema: Delphi JPEG Komprimieren

Einzelnen Beitrag anzeigen

e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
156 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: JPEG Komprimieren

  Alt 26. Nov 2008, 20:57
Hier mal eine Möglichkeit für Dein Problem:

Delphi-Quellcode:
procedure MakeSmallJPEG(PicWidth, PicHeight: Integer; FileName: string;
  Quality: TJPEGQualityRange; Original: TPicture);
var
  BMP: TBitmap;
  JPEG: TJPEGImage;
begin
  // leeres Bitmap erstellen
  BMP:= TBitmap.Create;
  // leeres JPEG erstellen
  JPEG:= TJPEGImage.Create;
  try
    // Sollgröße des späteren JPEGs einstellen
    BMP.Width:= PicWidth;
    BMP.Height:= PicHeight;
    // Orginalbild auf die Sollgröße verkleinern (oder vergrößern, wenn Orginal kleiner ist!)
    BMP.Canvas.StretchDraw(Rect(0, 0, PicWidth, PicHeight-1), Original.Graphic);

    // Komprimierungsrate des neuen JPEGs einstellen
    JPEG.CompressionQuality:= Quality;
    // Bitmap in das noch leere JPEG kopieren
    JPEG.Assign(BMP);
    // neues JPEG unter Filename speichern
    JPEG.SaveToFile(FileName);
  finally
    // Speicher von Bitmap und JPEG wieder freigeben
    BMP.Free;
    JPEG.Free;
  end;
end;
Aufgerufen wird das ganze dann so:

MakeSmallJPEG(320 {Wunschbreite}, 240 {Wunschhöhe}, 'C:\Test.jpg{Dateiname}, 75 {Komprimierungsrate}, Image1.Picture {Bild von Image1 als Orginal}); Erziehlt zwar keine hochwertigen Ergebnisse, ist aber ohne fremde Komponenten möglich...

[edit=Luckie]Wer deaktiviert denn den BBCode u nd nutzt dann Delphi-Tags? Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat