diff options
-rw-r--r-- | src/corelib/fpg_main.pas | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/corelib/fpg_main.pas b/src/corelib/fpg_main.pas index 368c5880..9c15760f 100644 --- a/src/corelib/fpg_main.pas +++ b/src/corelib/fpg_main.pas @@ -143,6 +143,7 @@ type TfpgImage = class(TfpgImageImpl) public + function ImageFromSource: TfpgImage; function ImageFromRect(var ARect: TRect): TfpgImage; overload; function ImageFromRect(var ARect: TfpgRect): TfpgImage; overload; end; @@ -2087,6 +2088,24 @@ end; { TfpgImage } +function TfpgImage.ImageFromSource: TfpgImage; +var + x, y: TfpgCoord; +begin + Result := TfpgImage.Create; + Result.AllocateImage(ColorDepth, Width, Height); + for x := 0 to Width-1 do + begin + for y := 0 to Height-1 do + begin + Result.Colors[x, y] := Colors[x, y]; + end; + end; + if Masked then + Result.CreateMaskFromSample(MaskPoint.X, MaskPoint.Y); + Result.UpdateImage; +end; + function TfpgImage.ImageFromRect(var ARect: TRect): TfpgImage; var x, y: TfpgCoord; |