程序使用了 GDI+ 的新接口: GdiPlus[1]: 一個給 Delphi 提供的、新的 GDI+ 接口, 很好用!
uses GdiPlus;
procedure TForm1.Button1Click(Sender: TObject);
const
Path1 = 'C:\Temp\Test.png' ;
Path2 = 'C:\Temp\Test2.png';
var
Img1,Img2: IGPImage;
Graphics: IGPGraphics;
begin
{ 打開原圖片 }
Img1 := TGPImage.Create(Path1);
{ 建一個新圖片, 假如是縮小一倍 }
Img2 := TGPBitmap.Create(Img1.Width div 2, Img1.Height div 2, PixelFormat32bppARGB);
{ 獲取新圖片的繪圖表面 }
Graphics := TGPGraphics.Create(Img2);
{ 設置縮放質量為最高質量 }
Graphics.InterpolationMode := InterpolationModeHighQualityBicubic;
{ 畫過來 }
Graphics.DrawImage(Img1, 0, 0, Img2.Width, Img2.Height, 0, 0, Img1.Width, Img1.Height, UnitPixel);
{ 保存 }
Img2.Save(Path2, TGPImageFormat.Png);
end;