au weja, ich habe mich dann falsch ausgedrückt, entschuldigung!
das mit dem öffnen und speichern habe ich hier, nur das anpassen der höhe ist nicht so wie ich es haben möchte...
Code:
procedure TForm1.Button7Click(Sender: TObject);
var
i: Integer;
InFileName, OutFileName: string;
FilePath, FileName: string;
JPEG : TJPEGImage;
bFrom,bTo : tBitmap;
aRect : tRect;
sFile: string;
wWidth, wHeight: word;
H1,B1,H2:integer;
begin
sFile := OpenDialog1.FileName;
GetJPGSize(sFile, wWidth, wHeight);
Edit1.Text := IntToStr(wWidth);
B1:= strtoint(edit1.text);
Edit2.Text := IntToStr(wHeight);
H1:= strtoint(edit2.text);
try
BFrom := TBitmap.Create;
BTo := TBitmap.Create;
JPEG := TJPEGImage.create;
JPEG.LoadFromFile(opendialog1.FileName);
//in ein Bitmap übergeben und jpeg freigeben
BFrom.assign(jpeg);
JPEG.free;
//Rechteck als &Zeichnungsfläche zur verfügung stellen
aRect.top := 0;
aRect.left := 0;
aRect.right := 150;
aRect.Bottom := 150;
//Grösse des Zielbitmaps festlegen
bTo.Height := 150; // hier müsste sich die höhe anpassen ????
bTo.width := 51; // Auf Breite 51 Pixel setzen
Image1.Proportional := True; //Damit keine Verzerrung entsteht
//bitmap in das rechteck zeichnen und dem neuen bitmap &Bto& verkleinert übergeben
Bto.canvas.StretchDraw(ARect, bFrom);
//verkleinertes Bitmap wieder in jpeg umwandeln
JPEG := TJPEGImage.create;
JPEG.Assign(bTo);
//Kompressionsqualität einstellen und abspeichern
JPEG.Performance:=jpBestQuality ;
// JPEG.compressionQuality := trackbar1.Position;
JPEG.JPEGNeeded;
JPEG.compress;
InFileName:=opendialog1.FileName;
FileName:=ExtractFileName(InFileName);
// FilePath:=IncludeTrailingBackSlash(OutDirEdit.Text);
OutFileName:=Concat('c:\test.jpg');
JPEG.savetofile(OutfileName);
// StatusBar1.SimpleText:='Fertig!';
BFrom.Free;
Bto.free;
jpeg.free;
except
end;
end;