在寻找一种方法来调整TPngObject的大小并保持透明度和alpha通道无果后,我尝试使用GDI+。
这是我的代码,看起来似乎工作正常,可以缩放PNG图片。目前已在XP上测试:
uses GDIPAPI, GDIPOBJ, GDIPUTIL;
procedure TForm1.Button1Click(Sender: TObject);
var
encoderClsid: TGUID;
stat: TStatus;
img, img_out: TGPImage;
begin
img := TGPImage.Create('in.png'); // 200 x 200
img_out := img.GetThumbnailImage(100, 100, nil, nil);
GetEncoderClsid('image/png', encoderClsid);
img_out.Save('out.png', encoderClsid);
img_out.free;
img.Free;
end;
我的问题是:使用
GetThumbnailImage
方法是否是正确的方式?我没有找到其他的方法。
InterpolationModeDefault = ?
,PixelOffsetModeDefault = PixelOffsetModeNone
和SmoothingModeDefault = no smoothing
(来源 MSDN)。 - TLamaSetInterpolationMode
,则可以在网络上找到每个使用的方法的文档,然后您会进入MSDN网站
,从那里您可以转到枚举InterpolationMode
描述
。 - TLama