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;
|
请发表评论