雖然不用 TWICImage 也可以方便實現圖像的修剪, 但這是 TWICImage 的方式.
測試代碼:
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;
Clipper: IWICBitmapClipper; {修剪圖像的接口}
r: WICRect;
begin
WicImg := TWICImage.Create;
WicImg.LoadFromFile('c:\temp\test.jpg');
Factory := WicImg.ImagingFactory;
Factory.CreateBitmapClipper(Clipper);
r.X := WicImg.Width div 4;
r.Y := WicImg.Height div 4;
r.Width := WicImg.Width div 2;
r.Height := WicImg.Height div 2;
Clipper.Initialize(WicImg.Handle, r);
WicImg.Handle := IWICBitmap(Clipper);
Canvas.Draw(0, 0, WicImg);
Clipper := nil;
Factory := nil;
WicImg.Free;
end;
end.