TGPGraphics.DrawImage 函数有太多重载了, 一起列在这吧:
function DrawImage(image: TGPImage; const point: TGPPointF): TStatus; overload;
function DrawImage(image: TGPImage; x, y: Single): TStatus; overload;
function DrawImage(image: TGPImage; const rect: TGPRectF): TStatus; overload;
function DrawImage(image: TGPImage; x, y, width, height: Single): TStatus; overload;
function DrawImage(image: TGPImage; const point: TGPPoint): TStatus; overload;
function DrawImage(image: TGPImage; x, y: Integer): TStatus; overload;
function DrawImage(image: TGPImage; const rect: TGPRect): TStatus; overload;
function DrawImage(image: TGPImage; x, y, width, height: Integer): TStatus; overload;
function DrawImage(image: TGPImage; destPoints: PGPPointF; count: Integer): TStatus; overload;
function DrawImage(image: TGPImage; destPoints: PGPPoint; count: Integer): TStatus; overload;
function DrawImage(
image: TGPImage;
x, y, srcx, srcy, srcwidth, srcheight: Single;
srcUnit: TUnit
): TStatus; overload;
function DrawImage(image: TGPImage;
const destRect: TGPRectF;
srcx, srcy, srcwidth, srcheight: Single;
srcUnit: TUnit;
imageAttributes: TGPImageAttributes = nil;
callback: DrawImageAbort = nil;
callbackData: Pointer = nil
): TStatus; overload;
function DrawImage(
image: TGPImage;
destPoints: PGPPointF;
count: Integer;
srcx, srcy, srcwidth, srcheight: Single;
srcUnit: TUnit;
imageAttributes: TGPImageAttributes = nil;
callback: DrawImageAbort = nil;
callbackData: Pointer = nil
): TStatus; overload;
function DrawImage(image: TGPImage;
x, y, srcx, srcy, srcwidth, srcheight: Integer;
srcUnit: TUnit
): TStatus; overload;
function DrawImage(
image: TGPImage;
const destRect: TGPRect;
srcx, srcy, srcwidth, srcheight: Integer;
srcUnit: TUnit;
imageAttributes: TGPImageAttributes = nil;
callback: DrawImageAbort = nil;
callbackData: Pointer = nil
): TStatus; overload;
function DrawImage(
image: TGPImage;
destPoints: PGPPoint;
count, srcx, srcy, srcwidth, srcheight: Integer;
srcUnit: TUnit;
imageAttributes: TGPImageAttributes = nil;
callback: DrawImageAbort = nil;
callbackData: Pointer = nil
): TStatus; overload;
本例效果图:代码文件:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses GDIPOBJ, GDIPAPI;
procedure TForm1.FormPaint(Sender: TObject);
var
g: TGPGraphics;
img: TGPImage;
begin
g := TGPGraphics.Create(Self.Canvas.Handle);
img := TGPImage.Create('C:\temp\test.jpg');
g.DrawImage(img, 0, 0, img.GetWidth, img.GetHeight);
img.Free;
g.Free;
end;
end.
窗体文件:object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 290
ClientWidth = 355
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnPaint = FormPaint
PixelsPerInch = 96
TextHeight = 13
end