delphi GDI 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法

delphi 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法

若有更好的,请大神留言我也学习下,感谢!

uses WinAPI.GDIPAPI, WinAPI.GDIPOBJ;

var

Bitmap1: TGPBitmap;

Bitmap2: TBitmap;

Graphic: TGPGraphics;

begin

Bitmap1 := TGPBitmap.Create('test.bmp'); // bmp, gif, jpeg, png...

Bitmap2 := TBitmap.Create;

with Bitmap2 do

begin

Width := Bitmap1.GetWidth * 2 div 3; // shrink to 2/3 width

Height := Bitmap1.GetHeight * 2 div 3; // shrink to 2/3 height

PixelFormat := pf32bit;

end;

Graphic := TGPGraphics.Create(Bitmap2.Canvas.Handle);

Graphic.SetInterpolationMode(InterpolationModeHighQualityBicubic); // bicubic resample

Graphic.DrawImage(Bitmap1, 0, 0, Bitmap2.Width, Bitmap2.Height);

Bitmap2.SaveToFile('test_resized.bmp');

Graphic.Free;

Bitmap2.Free;

Bitmap1.Free;

end;