procedure TForm1.Button1Click(Sender: TObject); //uses Winapi.GDIPOBJ, Winapi.GDIPAPI, Winapi.GDIPUTIL, var Input: TGPImage; Output: TGPBitmap; Encoder: TGUID; Graphics: TGPGraphics; begin Input := TGPImage.Create('C:InputImage.png'); try // create the output bitmap in desired size Output := TGPBitmap.Create(100, 100, PixelFormat32bppARGB); try // create graphics object for output image Graphics := TGPGraphics.Create(Output); try // set the composition mode to copy Graphics.SetCompositingMode(CompositingModeSourceCopy); // set high quality rendering modes Graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic); Graphics.SetPixelOffsetMode(PixelOffsetModeHighQuality); Graphics.SetSmoothingMode(SmoothingModeHighQuality); // draw the input image on the output in modified size Graphics.DrawImage(Input, 0, 0, Output.GetWidth, Output.GetHeight); finally Graphics.Free; end; // get encoder and encode the output image if GetEncoderClsid('image/png', Encoder) <> -1 then Output.Save('C:OutputImage.png', Encoder) else raise Exception.Create('Failed to get encoder.'); finally Output.Free; end; finally Input.Free; end; end;