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]