TWICImage 的 Width、Height 屬性, 可以讀取但不能賦值.
調整 TWICImage 的大小、比例, 可以通過 IWICBitmapScaler 接口.
//IWICBitmapScaler.Initialize 函數有四種比例變換的算法:
WICBitmapInterpolationModeNearestNeighbor = 0;
WICBitmapInterpolationModeLinear = $1;
WICBitmapInterpolationModeCubic = $2;
WICBitmapInterpolationModeFant = $3;
測試代碼:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses Wincodec;
procedure TForm1.Button1Click(Sender: TObject);
var
WicImg: TWICImage;
Factory: IWICImagingFactory;
Scaler: IWICBitmapScaler; {圖像比例變換接口}
begin
WicImg := TWICImage.Create;
WicImg.LoadFromFile('c:\temp\test.jpg');
Factory := WicImg.ImagingFactory;
Factory.CreateBitmapScaler(Scaler);
Scaler.Initialize(WicImg.Handle,
WicImg.Width div 2, WicImg.Height div 3,
WICBitmapInterpolationModeFant);
WicImg.Handle := IWICBitmap(Scaler);
Canvas.Draw(0, 0, WicImg);
Scaler := nil;
Factory := nil;
WicImg.Free;
end;
end.