有一种简单的办法,但只能用于缩小到原图的1/2、1/4或1/8,如下:
procedure TForm1.Button1Click(Sender: TObject);
procedure TForm1.Button5Click(Sender: TObject);
var
jpeg, jpeg2: TJPEGImage;
bmp: TBitmap;
begin
jpeg := TJPEGImage.Create;
jpeg2 := TJPEGImage.Create;
bmp := TBitmap.Create;
try
jpeg.LoadFromFile('C:/2.jpg');
jpeg.Scale := jsQuarter; // 设定大小,可以是jsFullSize, jsHalf, jsQuarter, jsEighth,分别表示全尺寸、1/2大小、1/4大小、1/8大小
bmp.Width := jpeg.Width;
bmp.Height := jpeg.Height;
bmp.Assign(jpeg);
jpeg2.CompressionQuality := 80; // 设定目标jpg的压缩质量
jpeg2.Assign(bmp);
jpeg2.SaveToFile('C:/22.jpg');
finally
bmp.Free;
jpeg2.Free;
jpeg.Free;
end;
end;