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