diff --git a/docs/doc/AllClasses.html b/docs/doc/AllClasses.html index d8d4a99..7c9248d 100644 --- a/docs/doc/AllClasses.html +++ b/docs/doc/AllClasses.html @@ -1634,7 +1634,7 @@

All Structures

THSLAPixel BGRABitmapTypes -

Pixel color defined in linear HSL colorspace.

+

Pixel color defined in linear HSL colorspace with gamma correction.

THSLAPixelBasicHelper diff --git a/docs/doc/AllFunctions.html b/docs/doc/AllFunctions.html index 1af8cec..b527a0e 100644 --- a/docs/doc/AllFunctions.html +++ b/docs/doc/AllFunctions.html @@ -3524,7 +3524,7 @@

All Functions and Procedures

CreateCyclicPerlinNoiseMap BGRAGradients -

Creates a tilable random grayscale image

+

Creates a tilable random grayscale image.

CreateDitheringTask diff --git a/docs/doc/AllIdentifiers.html b/docs/doc/AllIdentifiers.html index 970364f..b687a89 100644 --- a/docs/doc/AllIdentifiers.html +++ b/docs/doc/AllIdentifiers.html @@ -4164,7 +4164,7 @@

All Identifiers

CreateCyclicPerlinNoiseMap BGRAGradients -

Creates a tilable random grayscale image

+

Creates a tilable random grayscale image.

CreateDitheringTask @@ -12328,7 +12328,7 @@

All Identifiers

THSLAPixel BGRABitmapTypes -

Pixel color defined in linear HSL colorspace.

+

Pixel color defined in linear HSL colorspace with gamma correction.

THSLAPixelBasicHelper diff --git a/docs/doc/BGRABitmapTypes.TBGRACustomBitmap.html b/docs/doc/BGRABitmapTypes.TBGRACustomBitmap.html index b4f8c0d..62bb6e9 100644 --- a/docs/doc/BGRABitmapTypes.TBGRACustomBitmap.html +++ b/docs/doc/BGRABitmapTypes.TBGRACustomBitmap.html @@ -1764,7 +1764,33 @@

Methods

constructor Create(ABitmap: TBitmap; AUseTransparent: boolean); overload; virtual; abstract; -

This item has no description.

+

+Create an instance and load an image from a file.

+

+ + +

Example of loading and displaying an image on a form: + +

+ +
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+  image := TBGRABitmap.Create('image.png');
+end;
+
+procedure TForm1.FormDestroy(Sender: TObject);
+begin
+  image.free;
+end;
+
+procedure TForm1.FormPaint(Sender: TObject);
+begin
+  image.Draw(Canvas, 0, 0, True); // assume image is opaque
+end;
+ +

+ @@ -1837,7 +1863,44 @@

Methods

-Spline

+Compute an closed spline passing by the given points.

+

+ + +

Example of drawing a spline on a form: + +

computeclosedspline + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var
+  image: TBGRABitmap;
+  pts: array of TPointF;
+  storedSpline: array of TPointF;
+  c: TBGRAPixel;
+begin
+    image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
+    c := clWindowText;
+
+    //rectangular polyline
+    setlength(pts,4);
+    pts[0] := PointF(50,50);
+    pts[1] := PointF(150,50);
+    pts[2] := PointF(150,150);
+    pts[3] := PointF(50,150);
+    image.DrawPolylineAntialias(pts,BGRA(255,0,0,150),1);
+
+    //compute spline points and draw as a polyline
+    storedSpline := image.ComputeClosedSpline(pts,ssVertexToSide);
+    image.DrawPolylineAntialias(storedSpline,c,1);
+
+    image.Draw(Canvas,0,0,True);
+    image.free;
+end;
+ +

@@ -1894,7 +1957,46 @@

Methods

+

+Compute an opened spline passing by the given points.

+

+ + +

Example of drawing a spline on a form: + +

computeopenedspline + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var
+  image: TBGRABitmap;
+  pts: array of TPointF;
+  storedSpline: array of TPointF;
+  c: TBGRAPixel;
+begin
+    image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
+    c := clWindowText;
+
+    //rectangular polyline
+    setlength(pts,4);
+    pts[0] := PointF(50,50);
+    pts[1] := PointF(150,50);
+    pts[2] := PointF(150,150);
+    pts[3] := PointF(50,150);
+    image.DrawPolylineAntialias(pts,BGRA(255,0,0,150),1);
+
+    //compute spline points and draw as a polyline
+    storedSpline := image.ComputeOpenedSpline(pts,ssVertexToSide);
+    image.DrawPolylineAntialias(storedSpline,c,1);
+
+    image.Draw(Canvas,0,0,True);
+    image.free;
+end;
+ +

+
function ComputeOpenedSpline(const APoints: array of TPointF; AStyle: TSplineStyle): ArrayOfTPointF; virtual; abstract;
-

This item has no description.

diff --git a/docs/doc/BGRABitmapTypes.TBGRACustomPenStroker.html b/docs/doc/BGRABitmapTypes.TBGRACustomPenStroker.html index 3019582..76a578e 100644 --- a/docs/doc/BGRABitmapTypes.TBGRACustomPenStroker.html +++ b/docs/doc/BGRABitmapTypes.TBGRACustomPenStroker.html @@ -426,7 +426,7 @@

Properties

Example of skew transform: -

pen_skew +

pen_skew

diff --git a/docs/doc/BGRABitmapTypes.TGSBAPixel.html b/docs/doc/BGRABitmapTypes.TGSBAPixel.html index 7b299d1..88de637 100644 --- a/docs/doc/BGRABitmapTypes.TGSBAPixel.html +++ b/docs/doc/BGRABitmapTypes.TGSBAPixel.html @@ -25,7 +25,48 @@

Declaration

Description

-Pixel color defined in corrected HSL colorspace. G stands for corrected hue and B stands for actual brightness. Values range from 0 to 65535.

+Pixel color defined in corrected HSL colorspace.

+

+ + +

G stands for corrected hue and B stands for actual brightness. Values range from 0 to 65535. + +

See THSLAPixel for this colorspace without hue and brightness correction. + +

Example of drawing a gradient in GSB colorspace: + +

gsbapixel_gradient + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var x,y: integer;
+    p: PBGRAPixel;
+    image: TBGRABitmap;
+    gsba: TGSBAPixel;
+begin
+  image := TBGRABitmap.Create(ClientWidth,ClientHeight);
+  gsba.lightness := 32768;
+  gsba.alpha := 65535;
+  for y := 0 to image.Height-1 do
+  begin
+    p := image.Scanline[y];
+    gsba.saturation := y*65536 div image.Height;
+    for x := 0 to image.Width-1 do
+    begin
+      gsba.hue := x*65536 div image.Width;
+      pˆ:= GSBAToBGRA(gsba);
+      inc(p);
+    end;
+  end;
+  image.InvalidateBitmap; // changed by direct access
+
+  image.Draw(Canvas,0,0,True);
+  image.free;
+end;
+ +

Overview

Fields

diff --git a/docs/doc/BGRABitmapTypes.TGenericUniversalBitmap.generic.html b/docs/doc/BGRABitmapTypes.TGenericUniversalBitmap.generic.html index 400dbc3..9ed64b0 100644 --- a/docs/doc/BGRABitmapTypes.TGenericUniversalBitmap.generic.html +++ b/docs/doc/BGRABitmapTypes.TGenericUniversalBitmap.generic.html @@ -416,7 +416,49 @@

Methods

-Creates a brush texture with a specified style, pattern color, background color, dimensions, and pen width

+Creates a brush texture with a specified style, pattern color, background color, dimensions, and pen width.

+

+ + +

Example using a diagonal cross texture to fill shapes on a form: + +

createbrushtexture + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var
+  image,tex: TBGRABitmap;
+  c: TBGRAPixel;
+  x,y,rx,ry: single;
+
+begin
+    image := TBGRABitmap.Create(ClientWidth,ClientHeight,ColorToBGRA(ColorToRGB(clBtnFace)));
+    c := ColorToBGRA(ColorToRGB(clWindowText));
+
+    //ellipse coordinates
+    x := 150;
+    y := 100;
+    rx := 100;
+    ry := 50;
+
+    //loads a "diagcross" brush with white pattern and orange background
+    tex := image.CreateBrushTexture(bsDiagCross,BGRAWhite,BGRA(255,192,0)) as TBGRABitmap;
+
+    image.FillEllipseAntialias(x,y,rx-0.5,ry-0.5,tex);
+    image.EllipseAntialias(x,y,rx,ry,c,1); //draw outline
+
+    image.RoundRectAntialias(x-rx-10,y-ry-10,x+rx+10,y+ry+10,20,20,c,11);
+    image.RoundRectAntialias(x-rx-10,y-ry-10,x+rx+10,y+ry+10,20,20,tex,9);
+
+    tex.Free;
+
+    image.Draw(Canvas,0,0,True);
+    image.free;
+end;
+ +

@@ -999,7 +1041,33 @@

Methods

+

+Draw a rectangle using current pen with antialiasing.

+

+ + +

Example drawing a rectangle on a form: + +

rectangleantialias + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var image: TBGRABitmap;
+    c: TBGRAPixel;
+begin
+  image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
+  c := clWindowText;
+
+  image.RectangleAntialias(80,80,300,200, c, 50);
+
+  image.Draw(Canvas,0,0,True);
+  image.free;
+end;
+ +

+
procedure RectangleAntialias(x, y, x2, y2: single; const AColor: TPixel; AWidth: single); overload; virtual;
-

This item has no description.

diff --git a/docs/doc/BGRABitmapTypes.THSLAPixel.html b/docs/doc/BGRABitmapTypes.THSLAPixel.html index 14b254d..0e5b573 100644 --- a/docs/doc/BGRABitmapTypes.THSLAPixel.html +++ b/docs/doc/BGRABitmapTypes.THSLAPixel.html @@ -25,7 +25,46 @@

Declaration

Description

-Pixel color defined in linear HSL colorspace. Gamma correction is taken into account. Values range from 0 to 65535.

+Pixel color defined in linear HSL colorspace with gamma correction.

+

+ + +

Values range from 0 to 65535. See TGSBAPixel for corrected hue and brightness. + +

Example drawing all the colors in HSL colorspace: + +

hslapixel_gradient + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var x,y: integer;
+    p: PBGRAPixel;
+    image: TBGRABitmap;
+    hsla: THSLAPixel;
+begin
+  image := TBGRABitmap.Create(ClientWidth,ClientHeight);
+  hsla.lightness := 32768;
+  hsla.alpha := 65535;
+  for y := 0 to image.Height-1 do
+  begin
+    p := image.Scanline[y];
+    hsla.saturation := y*65536 div image.Height;
+    for x := 0 to image.Width-1 do
+    begin
+      hsla.hue := x*65536 div image.Width;
+      pˆ:= HSLAToBGRA(hsla);
+      inc(p);
+    end;
+  end;
+  image.InvalidateBitmap; // changed by direct access
+
+  image.Draw(Canvas,0,0,True);
+  image.free;
+end;
+ +

Overview

Fields

diff --git a/docs/doc/BGRABitmapTypes.html b/docs/doc/BGRABitmapTypes.html index 979bedc..509efc2 100644 --- a/docs/doc/BGRABitmapTypes.html +++ b/docs/doc/BGRABitmapTypes.html @@ -247,7 +247,7 @@

Description

- + diff --git a/docs/doc/BGRACanvas2D.TBGRACanvas2D.html b/docs/doc/BGRACanvas2D.TBGRACanvas2D.html index f38bedc..d436cca 100644 --- a/docs/doc/BGRACanvas2D.TBGRACanvas2D.html +++ b/docs/doc/BGRACanvas2D.TBGRACanvas2D.html @@ -33,7 +33,7 @@

Description

Comparison between TBGRACanvas2D and Javascript HTML canvas: -

blue_circular_bevel_js +

blue_circular_bevel_js

@@ -184,11 +184,11 @@

Description

- + - + @@ -200,15 +200,15 @@

Description

- + - + - + @@ -232,11 +232,11 @@

Description

- + - + @@ -251,16 +251,8 @@

Description

- - - - - - - - - - + + @@ -268,95 +260,95 @@

Description

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -364,39 +356,39 @@

Description

- + - + - + - + - + - + - + - + - + @@ -404,23 +396,23 @@

Description

- + - + - + - + - + @@ -428,47 +420,47 @@

Description

- + - + - + - + - + - + - + - + - + - + - + @@ -476,55 +468,55 @@

Description

- + - + - + - + - + - + - + - + - + - + - + - + - + @@ -536,35 +528,35 @@

Description

- + - + - + - + - + - + - + - + @@ -572,41 +564,37 @@

Description

- + - + - - - - - + - + - + - + - + - + @@ -744,7 +732,7 @@

Fields

Packed Record THSLAPixelPixel color defined in linear HSL colorspace.Pixel color defined in linear HSL colorspace with gamma correction.
Record THSLAPixelBasicHelper
Publicfunction createLinearGradient(x0,y0,x1,y1: single): IBGRACanvasGradient2D; overload;function createLinearGradient(p0,p1: TPointF): IBGRACanvasGradient2D; overload;
Publicfunction createLinearGradient(p0,p1: TPointF): IBGRACanvasGradient2D; overload;function createLinearGradient(x0,y0,x1,y1: single): IBGRACanvasGradient2D; overload;
Public
Publicfunction createRadialGradient(x0,y0,r0,x1,y1,r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;function createRadialGradient(p0: TPointF; r0: single; p1: TPointF; r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;
Publicfunction createRadialGradient(p0: TPointF; r0: single; p1: TPointF; r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;function createRadialGradient(x0,y0,r0,x1,y1,r1: single; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;
Publicfunction createRadialGradient(x0,y0,r0,x1,y1,r1: single; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;function createRadialGradient(x0,y0,r0,x1,y1,r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;
Public
Publicfunction isPointInPath(x,y: single): boolean; overload;function isPointInPath(pt: TPointF): boolean; overload;
Publicfunction isPointInPath(pt: TPointF): boolean; overload;function isPointInPath(x,y: single): boolean; overload;
Public function toDataURL(mimeType: string = 'image/png'): string;
Protectedfunction QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
Protectedfunction _AddRef: Integer; stdcall;
Protectedfunction _Release: Integer; stdcall;Publicprocedure addPath(ASvgPath: string); overload;
Public
Publicprocedure addPath(ASvgPath: string); overload;procedure arc(x, y, radius, startAngleRadCW, endAngleRadCW: single); overload;
Publicprocedure arc(x, y, radius, startAngleRadCW, endAngleRadCW: single); overload;procedure arc(x, y, radius, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;
Publicprocedure arc(constref arcDef: TArcDef); overload;procedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;
Publicprocedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single); overload;procedure arc(constref arcDef: TArcDef); overload;
Publicprocedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;procedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single); overload;
Publicprocedure arc(x, y, radius, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;procedure arcTo(x1, y1, x2, y2, radius: single); overload;
Publicprocedure arcTo(rx, ry, xAngleRadCW: single; largeArc,anticlockwise: boolean; x, y: single);procedure arcTo(p1,p2: TPointF; radius: single); overload;
Publicprocedure arcTo(p1,p2: TPointF; radius: single); overload;procedure arcTo(rx, ry, xAngleRadCW: single; largeArc,anticlockwise: boolean; x, y: single);
Publicprocedure arcTo(x1, y1, x2, y2, radius: single); overload;procedure beginPath;
Publicprocedure beginPath;procedure bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y: single); overload;
Publicprocedure bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y: single); overload;procedure bezierCurveTo(constref cp1,cp2,pt: TPointF); overload;
Publicprocedure bezierCurveTo(constref cp1,cp2,pt: TPointF); overload;procedure circle(x,y,r: single);
Publicprocedure circle(x,y,r: single);procedure clearPath;
Publicprocedure clearPath;procedure clearRect(x,y,w,h: single);
Publicprocedure clearRect(x,y,w,h: single);procedure clip;
Publicprocedure clip;procedure closedSpline(const pts: array of TPointF; style: TSplineStyle);
Publicprocedure closedSpline(const pts: array of TPointF; style: TSplineStyle);procedure closePath;
Publicprocedure closePath;procedure copyStateFrom(AOtherCanvas2D: TBGRACanvas2D);
Publicprocedure copyStateFrom(AOtherCanvas2D: TBGRACanvas2D);procedure drawImage(image: TBGRACustomBitmap; dx,dy: single; AFilter: TResampleFilter = rfLinear); overload;
Publicprocedure drawImage(image: TBGRACustomBitmap; dx,dy: single; AFilter: TResampleFilter = rfLinear); overload;procedure drawImage(image: TBGRACustomBitmap; dx,dy,dw,dh: single; AFilter: TResampleFilter = rfLinear); overload;
Publicprocedure drawImage(image: TBGRACustomBitmap; dx,dy,dw,dh: single; AFilter: TResampleFilter = rfLinear); overload;procedure ellipse(x,y,rx,ry: single);
Publicprocedure ellipse(x,y,rx,ry: single);procedure fill; overload;
Publicprocedure fill; overload;procedure fill(AFillProc: TBGRAPathFillProc; AData: pointer); overload;
Public
Publicprocedure fill(AFillProc: TBGRAPathFillProc; AData: pointer); overload;procedure fillOverStroke;
Publicprocedure fillOverStroke;procedure fillRect(x,y,w,h: single);
Publicprocedure fillRect(x,y,w,h: single);procedure fillStyle(color: TBGRAPixel); overload;
Publicprocedure fillStyle(color: TColor); overload;procedure fillStyle(provider: IBGRACanvasTextureProvider2D); overload;
Publicprocedure fillStyle(color: TBGRAPixel); overload;procedure fillStyle(color: string); overload;
Publicprocedure fillStyle(color: string); overload;procedure fillStyle(texture: IBGRAScanner); overload;
Publicprocedure fillStyle(provider: IBGRACanvasTextureProvider2D); overload;procedure fillStyle(color: TColor); overload;
Publicprocedure fillStyle(texture: IBGRAScanner); overload;procedure fillText(AText: string; x,y: single);
Publicprocedure fillText(AText: string; x,y: single);procedure lineStyle(const AValue: array of single); overload;
Public
Publicprocedure lineStyle(const AValue: array of single); overload;procedure lineTo(constref pt: TPointF); overload;
Publicprocedure lineTo(constref pt: TPointF); overload;procedure lineTo(x,y: single); overload;
Publicprocedure lineTo(x,y: single); overload;procedure mask(image: TBGRACustomBitmap; dx,dy: single; AFilter: TResampleFilter = rfLinear); overload;
Publicprocedure mask(image: TBGRACustomBitmap; dx,dy: single; AFilter: TResampleFilter = rfLinear); overload;procedure mask(image: TBGRACustomBitmap; dx,dy,dw,dh: single; AFilter: TResampleFilter = rfLinear); overload;
Publicprocedure mask(image: TBGRACustomBitmap; dx,dy,dw,dh: single; AFilter: TResampleFilter = rfLinear); overload;procedure moveTo(x,y: single); overload;
Public
Publicprocedure moveTo(x,y: single); overload;procedure openedSpline(const pts: array of TPointF; style: TSplineStyle);
Publicprocedure openedSpline(const pts: array of TPointF; style: TSplineStyle);procedure path(APath: IBGRAPath); overload;
Publicprocedure path(APath: IBGRAPath); overload;procedure path(ASvgPath: string); overload;
Publicprocedure path(ASvgPath: string); overload;procedure polylineTo(const pts: array of TPointF);
Publicprocedure polylineTo(const pts: array of TPointF);procedure quadraticCurveTo(cpx,cpy,x,y: single); overload;
Publicprocedure quadraticCurveTo(cpx,cpy,x,y: single); overload;procedure quadraticCurveTo(constref cp,pt: TPointF); overload;
Publicprocedure quadraticCurveTo(constref cp,pt: TPointF); overload;procedure rect(x,y,w,h: single);
Publicprocedure rect(x,y,w,h: single);procedure resetTransform;
Publicprocedure resetTransform;procedure restore;
Publicprocedure restore;procedure rotate(angleRadCW: single);
Publicprocedure rotate(angleRadCW: single);procedure roundRect(x,y,w,h,radius: single); overload;
Public
Publicprocedure roundRect(x,y,w,h,radius: single); overload;procedure save;
Publicprocedure save;procedure scale(x,y: single); overload;
Publicprocedure scale(x,y: single); overload;procedure scale(factor: single); overload;
Publicprocedure scale(factor: single); overload;procedure setTransform(m11,m21, m12,m22, m13,m23: single);
Publicprocedure setTransform(m11,m21, m12,m22, m13,m23: single);procedure shadowColor(color: TBGRAPixel); overload;
Publicprocedure shadowColor(color: TBGRAPixel); overload;procedure shadowColor(color: string); overload;
Publicprocedure shadowColor(color: string); overload;procedure shadowColor(color: TColor); overload;
Publicprocedure shadowColor(color: TColor); overload;procedure shadowNone;
Publicprocedure shadowNone;procedure skewx(angleRadCW: single);
Publicprocedure skewx(angleRadCW: single);procedure skewy(angleRadCW: single);
Publicprocedure skewy(angleRadCW: single);procedure spline(const pts: array of TPointF; style: TSplineStyle= ssOutside);
Publicprocedure spline(const pts: array of TPointF; style: TSplineStyle= ssOutside);procedure splineTo(const pts: array of TPointF; style: TSplineStyle= ssOutside);
Publicprocedure splineTo(const pts: array of TPointF; style: TSplineStyle= ssOutside);procedure stroke(ADrawProc: TBGRAPathDrawProc; AData: pointer); overload;
Public
Publicprocedure stroke(ADrawProc: TBGRAPathDrawProc; AData: pointer); overload;procedure strokeOverFill;
Publicprocedure strokeOverFill;procedure strokeRect(x,y,w,h: single);
Publicprocedure strokeRect(x,y,w,h: single);procedure strokeResetTransform;
Publicprocedure strokeResetTransform;procedure strokeScale(x,y: single);
Publicprocedure strokeScale(x,y: single);procedure strokeSkewx(angleRadCW: single);
Publicprocedure strokeSkewx(angleRadCW: single);procedure strokeSkewy(angleRadCW: single);
Publicprocedure strokeSkewy(angleRadCW: single);procedure strokeStyle(color: TBGRAPixel); overload;
Publicprocedure strokeStyle(color: string); overload;procedure strokeStyle(provider: IBGRACanvasTextureProvider2D); overload;
Public
Publicprocedure strokeStyle(provider: IBGRACanvasTextureProvider2D); overload;procedure strokeStyle(texture: IBGRAScanner); overload;
Publicprocedure strokeStyle(texture: IBGRAScanner); overload;procedure strokeStyle(color: string); overload;
Publicprocedure strokeStyle(color: TBGRAPixel); overload;
Public procedure strokeText(AText: string; x,y: single);
Public procedure text(AText: string; x,y: single);
Public procedure toSpline(closed: boolean; style: TSplineStyle= ssOutside);
Public procedure transform(AMatrix: TAffineMatrix); overload;
Public procedure transform(m11,m21, m12,m22, m13,m23: single); overload;
Public procedure translate(x,y: single);
Public procedure unclip;

-IBGRAPath

+Whether to apply antialiasing when drawing

@@ -754,7 +742,11 @@

Fields

-IBGRAPath

+Whether to use gamma correction in gradient interpolation.

+

+ + +

It is less accurate but it reflects more how HTML Canvas works.

@@ -764,7 +756,11 @@

Fields

-IBGRAPath

+Whether to use linear blending when merging colors.

+

+ + +

In this case, gamma correction won't be applied. It is less accurate but it reflects more how HTML Canvas works.

Methods

@@ -774,7 +770,9 @@

Methods

constructor Create(ASurface: TBGRACustomBitmap); -

This item has no description.

+

+Create an new instance with its own context.

+ @@ -782,7 +780,9 @@

Methods

+

+Destroys the canvas context including the font renderer.

+
destructor Destroy; override;
-

This item has no description.

@@ -790,7 +790,9 @@

Methods

+

+Creates a linear gradient with custom color stops.

+
function createLinearGradient(x0,y0,x1,y1: single; Colors: TBGRACustomGradient): IBGRACanvasGradient2D; overload;
-

This item has no description.

@@ -798,23 +800,29 @@

Methods

+

+Creates a linear gradient with custom color stops using TPointF.

+
function createLinearGradient(p0,p1: TPointF; Colors: TBGRACustomGradient): IBGRACanvasGradient2D; overload;
-

This item has no description.

- + +

+Creates a linear gradient between two points using TPointF.

+
Publicfunction createLinearGradient(x0,y0,x1,y1: single): IBGRACanvasGradient2D; overload;function createLinearGradient(p0,p1: TPointF): IBGRACanvasGradient2D; overload;
-

This item has no description.

- + +

+Creates a linear gradient between two points.

+
Publicfunction createLinearGradient(p0,p1: TPointF): IBGRACanvasGradient2D; overload;function createLinearGradient(x0,y0,x1,y1: single): IBGRACanvasGradient2D; overload;
-

This item has no description.

@@ -822,7 +830,9 @@

Methods

+

+Creates a pattern using a scanner interface.

+
function createPattern(texture: IBGRAScanner): IBGRACanvasTextureProvider2D; overload;
-

This item has no description.

@@ -830,31 +840,51 @@

Methods

+

+Creates a pattern using an image.

+

+ + +

repetition can be:

+ + + +

+
function createPattern(image: TBGRACustomBitmap; repetition: string): IBGRACanvasTextureProvider2D; overload;
-

This item has no description.

- + +

+Creates a radial gradient with custom color stops using TPointF.

+
Publicfunction createRadialGradient(x0,y0,r0,x1,y1,r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;function createRadialGradient(p0: TPointF; r0: single; p1: TPointF; r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;
-

This item has no description.

- + +

+Creates a radial gradient between two circles.

+
Publicfunction createRadialGradient(p0: TPointF; r0: single; p1: TPointF; r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;function createRadialGradient(x0,y0,r0,x1,y1,r1: single; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;
-

This item has no description.

- + +

+Creates a radial gradient with custom color stops.

+
Publicfunction createRadialGradient(x0,y0,r0,x1,y1,r1: single; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;function createRadialGradient(x0,y0,r0,x1,y1,r1: single; Colors: TBGRACustomGradient; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;
-

This item has no description.

@@ -862,7 +892,9 @@

Methods

+

+Creates a radial gradient between two circles using TPointF.

+
function createRadialGradient(p0: TPointF; r0: single; p1: TPointF; r1: single; flipGradient: boolean=false): IBGRACanvasGradient2D; overload;
-

This item has no description.

@@ -870,7 +902,9 @@

Methods

+

+Converts CSS font name to LCL font name.

+
class function CSSFontNameToLCL(AName: string): string;
-

This item has no description.

@@ -878,7 +912,9 @@

Methods

+

+Converts a list of font names to a string.

+
class function FontNameListToStr(AList: ArrayOfString): string;
-

This item has no description.

@@ -886,7 +922,9 @@

Methods

+

+Gets the current line style.

+
function getLineStyle: TBGRAPenStyle;
-

This item has no description.

@@ -894,23 +932,29 @@

Methods

+

+Retrieves the current color used for shadows.

+
function getShadowColor: TBGRAPixel;
-

This item has no description.

- + +

+Checks if a given TPointF is inside the current path.

+
Publicfunction isPointInPath(x,y: single): boolean; overload;function isPointInPath(pt: TPointF): boolean; overload;
-

This item has no description.

- + +

+Checks if a given point is inside the current path.

+
Publicfunction isPointInPath(pt: TPointF): boolean; overload;function isPointInPath(x,y: single): boolean; overload;
-

This item has no description.

@@ -918,7 +962,9 @@

Methods

+

+Measures the size of the given text.

+
function measureText(AText: string): TCanvas2dTextSize;
-

This item has no description.

@@ -926,7 +972,9 @@

Methods

+

+Converts a string of font names to a list.

+
class function StrToFontNameList(AText: string): ArrayOfString;
-

This item has no description.

@@ -934,47 +982,29 @@

Methods

-
function toDataURL(mimeType: string = 'image/png'): string;
-

This item has no description.

- - - - - - -
Protectedfunction QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
-

This item has no description.

- - - - - - -
Protectedfunction _AddRef: Integer; stdcall;
-

This item has no description.

- - - - - - +

+Converts the image to code that can be put in an image href

+
Protectedfunction _Release: Integer; stdcall;
-

This item has no description.

- + +

+Adds an SVG path to the current drawing.

+
Publicprocedure addPath(APath: IBGRAPath); overload;procedure addPath(ASvgPath: string); overload;
-

This item has no description.

- + +

+Adds a path to the current drawing.

+
Publicprocedure addPath(ASvgPath: string); overload;procedure addPath(APath: IBGRAPath); overload;
-

This item has no description.

@@ -982,47 +1012,59 @@

Methods

+

+Adds an arc around the specified point in the clockwise direction.

+
procedure arc(x, y, radius, startAngleRadCW, endAngleRadCW: single); overload;
-

This item has no description.

- + +

+Adds an arc around the specified point.

+
Publicprocedure arc(constref arcDef: TArcDef); overload;procedure arc(x, y, radius, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;
-

This item has no description.

- + +

+Adds an elliptical arc around the specified point.

+
Publicprocedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single); overload;procedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;
-

This item has no description.

- + +

+Adds an elliptical arc using TArcDef.

+
Publicprocedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;procedure arc(constref arcDef: TArcDef); overload;
-

This item has no description.

- + +

+Adds an elliptical arc around the specified point in the clockwise direction.

+
Publicprocedure arc(x, y, radius, startAngleRadCW, endAngleRadCW: single; anticlockwise: boolean); overload;procedure arc(cx, cy, rx,ry, xAngleRadCW, startAngleRadCW, endAngleRadCW: single); overload;
-

This item has no description.

- + +

+Adds an arc from current position.

+
Publicprocedure arcTo(rx, ry, xAngleRadCW: single; largeArc,anticlockwise: boolean; x, y: single);procedure arcTo(x1, y1, x2, y2, radius: single); overload;
-

This item has no description.

@@ -1030,15 +1072,19 @@

Methods

+

+Adds an arc from current position using TPointF.

+
procedure arcTo(p1,p2: TPointF; radius: single); overload;
-

This item has no description.

- + +

+Adds an elliptic arc of the given angle from current position.

+
Publicprocedure arcTo(x1, y1, x2, y2, radius: single); overload;procedure arcTo(rx, ry, xAngleRadCW: single; largeArc,anticlockwise: boolean; x, y: single);
-

This item has no description.

@@ -1046,7 +1092,9 @@

Methods

+

+Begins a new path or resets the current path.

+
procedure beginPath;
-

This item has no description.

@@ -1054,7 +1102,9 @@

Methods

+

+Adds a cubic Bézier curve to a specified point.

+
procedure bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y: single); overload;
-

This item has no description.

@@ -1062,7 +1112,9 @@

Methods

+

+Adds a cubic Bézier curve to a specified point using TPointF.

+
procedure bezierCurveTo(constref cp1,cp2,pt: TPointF); overload;
-

This item has no description.

@@ -1070,7 +1122,9 @@

Methods

+

+Adds a full circle.

+
procedure circle(x,y,r: single);
-

This item has no description.

@@ -1078,7 +1132,9 @@

Methods

+

+Clears the area represented by the current path, making the canvas transparent

+
procedure clearPath;
-

This item has no description.

@@ -1086,7 +1142,9 @@

Methods

+

+Directly clears a rectangle, making it fully transparent.

+
procedure clearRect(x,y,w,h: single);
-

This item has no description.

@@ -1094,7 +1152,9 @@

Methods

+

+Clips the drawing region to the current path.

+
procedure clip;
-

This item has no description.

@@ -1102,7 +1162,9 @@

Methods

+

+Adds an closed spline to the current path

+
procedure closedSpline(const pts: array of TPointF; style: TSplineStyle);
-

This item has no description.

@@ -1110,7 +1172,9 @@

Methods

+

+Closes the current path.

+
procedure closePath;
-

This item has no description.

@@ -1118,7 +1182,9 @@

Methods

+

+Save the current state and copy the canvas state from another canvas.

+
procedure copyStateFrom(AOtherCanvas2D: TBGRACanvas2D);
-

This item has no description.

@@ -1126,7 +1192,9 @@

Methods

+

+Draws an image at the specified location.

+
procedure drawImage(image: TBGRACustomBitmap; dx,dy: single; AFilter: TResampleFilter = rfLinear); overload;
-

This item has no description.

@@ -1134,7 +1202,9 @@

Methods

+

+Draws an image with scaling.

+
procedure drawImage(image: TBGRACustomBitmap; dx,dy,dw,dh: single; AFilter: TResampleFilter = rfLinear); overload;
-

This item has no description.

@@ -1142,7 +1212,9 @@

Methods

+

+Adds a full ellipse.

+
procedure ellipse(x,y,rx,ry: single);
-

This item has no description.

@@ -1150,23 +1222,29 @@

Methods

+

+Fills the current path with the current fill style.

+
procedure fill; overload;
-

This item has no description.

- + +

+Fills the current path using the specified function.

+
Publicprocedure fill(AFillProc: TBGRAPathFillProc; const AMatrix: TAffineMatrix; AData: pointer); overload;procedure fill(AFillProc: TBGRAPathFillProc; AData: pointer); overload;
-

This item has no description.

- + +

+Fills the current path using the specified function and transformation matrix.

+
Publicprocedure fill(AFillProc: TBGRAPathFillProc; AData: pointer); overload;procedure fill(AFillProc: TBGRAPathFillProc; const AMatrix: TAffineMatrix; AData: pointer); overload;
-

This item has no description.

@@ -1175,7 +1253,7 @@

Methods

-may not render curve nicely

+Fill and stroke at the same time, with filling being on top

@@ -1184,23 +1262,29 @@

Methods

+

+Directly fills a rectangle with the current fill style.

+
procedure fillRect(x,y,w,h: single);
-

This item has no description.

- + +

+Sets the fill style to a solid color specified as TBGRAPixel

+
Publicprocedure fillStyle(color: TColor); overload;procedure fillStyle(color: TBGRAPixel); overload;
-

This item has no description.

- + +

+Sets the fill style to a texture using a texture provider.

+
Publicprocedure fillStyle(color: TBGRAPixel); overload;procedure fillStyle(provider: IBGRACanvasTextureProvider2D); overload;
-

This item has no description.

@@ -1208,23 +1292,33 @@

Methods

+

+Sets the fill style to a solid color specified as CSS string

+
procedure fillStyle(color: string); overload;
-

This item has no description.

- + +

+Sets the fill style to a texture defined by IBGRAScanner interface.

+

+ + +

The texture can be a TBGRABitmap object or any custom scanner.

+
Publicprocedure fillStyle(provider: IBGRACanvasTextureProvider2D); overload;procedure fillStyle(texture: IBGRAScanner); overload;
-

This item has no description.

- + +

+Sets the fill style to a solid color specified as TColor

+
Publicprocedure fillStyle(texture: IBGRAScanner); overload;procedure fillStyle(color: TColor); overload;
-

This item has no description.

@@ -1232,23 +1326,29 @@

Methods

+

+Fills directly the specified text using current fill style.

+
procedure fillText(AText: string; x,y: single);
-

This item has no description.

- + +

+Sets the style for lines.

+
Publicprocedure lineStyle(AStyle: TPenStyle); overload;procedure lineStyle(const AValue: array of single); overload;
-

This item has no description.

- + +

+Sets the style for lines using a predefined style.

+
Publicprocedure lineStyle(const AValue: array of single); overload;procedure lineStyle(AStyle: TPenStyle); overload;
-

This item has no description.

@@ -1256,7 +1356,9 @@

Methods

+

+Connects a line to a specified point using TPointF.

+
procedure lineTo(constref pt: TPointF); overload;
-

This item has no description.

@@ -1264,7 +1366,9 @@

Methods

+

+Connects with a line to a specified point.

+
procedure lineTo(x,y: single); overload;
-

This item has no description.

@@ -1272,7 +1376,9 @@

Methods

+

+Applies the specified mask at the specified location for future drawings.

+
procedure mask(image: TBGRACustomBitmap; dx,dy: single; AFilter: TResampleFilter = rfLinear); overload;
-

This item has no description.

@@ -1280,23 +1386,29 @@

Methods

+

+Applies the specified mask with scaling for future drawings.

+
procedure mask(image: TBGRACustomBitmap; dx,dy,dw,dh: single; AFilter: TResampleFilter = rfLinear); overload;
-

This item has no description.

- + +

+Moves the pen to a new location.

+
Publicprocedure moveTo(constref pt: TPointF); overload;procedure moveTo(x,y: single); overload;
-

This item has no description.

- + +

+Moves the pen to a new location using TPointF.

+
Publicprocedure moveTo(x,y: single); overload;procedure moveTo(constref pt: TPointF); overload;
-

This item has no description.

@@ -1304,7 +1416,9 @@

Methods

+

+Adds an opened spline to the current path

+
procedure openedSpline(const pts: array of TPointF; style: TSplineStyle);
-

This item has no description.

@@ -1312,7 +1426,9 @@

Methods

+

+Replaces the current defined path.

+
procedure path(APath: IBGRAPath); overload;
-

This item has no description.

@@ -1320,7 +1436,9 @@

Methods

+

+Replaces the current defined path defined as SVG path.

+
procedure path(ASvgPath: string); overload;
-

This item has no description.

@@ -1328,7 +1446,9 @@

Methods

+

+Add multiple connected lines.

+
procedure polylineTo(const pts: array of TPointF);
-

This item has no description.

@@ -1336,7 +1456,9 @@

Methods

+

+Adds a quadratic Bézier curve to a specified point.

+
procedure quadraticCurveTo(cpx,cpy,x,y: single); overload;
-

This item has no description.

@@ -1344,7 +1466,9 @@

Methods

+

+Adds a quadratic Bézier curve to a specified point using TPointF.

+
procedure quadraticCurveTo(constref cp,pt: TPointF); overload;
-

This item has no description.

@@ -1352,7 +1476,9 @@

Methods

+

+Adds a rectangle specified by its top-left corner, width and height

+
procedure rect(x,y,w,h: single);
-

This item has no description.

@@ -1360,7 +1486,9 @@

Methods

+

+Resets the current transformation matrix to the identity matrix.

+
procedure resetTransform;
-

This item has no description.

@@ -1368,7 +1496,13 @@

Methods

+

+Restores the most recently saved canvas state by popping the top entry in the drawing state stack.

+

+ + +

If there is no saved state, this method does nothing.

+
procedure restore;
-

This item has no description.

@@ -1376,23 +1510,29 @@

Methods

+

+Rotates the canvas around the origin (0,0) by the given angle in radians, clockwise.

+
procedure rotate(angleRadCW: single);
-

This item has no description.

- + +

+Adds a rounded rectangle.

+
Publicprocedure roundRect(x,y,w,h,rx,ry: single); overload;procedure roundRect(x,y,w,h,radius: single); overload;
-

This item has no description.

- + +

+Adds a rounded rectangle with different x and y radii.

+
Publicprocedure roundRect(x,y,w,h,radius: single); overload;procedure roundRect(x,y,w,h,rx,ry: single); overload;
-

This item has no description.

@@ -1400,7 +1540,23 @@

Methods

+

+Saves the entire state of the canvas by pushing the current state onto a stack.

+

+ + +

The drawing state consists of:

+ + + +

+
procedure save;
-

This item has no description.

@@ -1408,7 +1564,9 @@

Methods

+

+Apply scaling to the canvas with independent x and y scales.

+
procedure scale(x,y: single); overload;
-

This item has no description.

@@ -1416,7 +1574,9 @@

Methods

+

+Apply uniform scaling to the canvas.

+
procedure scale(factor: single); overload;
-

This item has no description.

@@ -1424,7 +1584,9 @@

Methods

+

+Resets the current transform to the identity matrix, then applies the new transformation.

+
procedure setTransform(m11,m21, m12,m22, m13,m23: single);
-

This item has no description.

@@ -1432,7 +1594,9 @@

Methods

+

+Sets the color of the shadow specified as TBGRAPixel

+
procedure shadowColor(color: TBGRAPixel); overload;
-

This item has no description.

@@ -1440,7 +1604,9 @@

Methods

+

+Sets the color of the shadow specified as CSS string

+
procedure shadowColor(color: string); overload;
-

This item has no description.

@@ -1448,7 +1614,9 @@

Methods

+

+Sets the color of the shadow specified as TColor

+
procedure shadowColor(color: TColor); overload;
-

This item has no description.

@@ -1456,7 +1624,9 @@

Methods

+

+Removes any shadow effect from future drawings.

+
procedure shadowNone;
-

This item has no description.

@@ -1464,7 +1634,9 @@

Methods

+

+Skews the drawing on the canvas along the X axis by the given angle in radians.

+
procedure skewx(angleRadCW: single);
-

This item has no description.

@@ -1472,7 +1644,9 @@

Methods

+

+Skews the drawing on the canvas along the Y axis by the given angle in radians.

+
procedure skewy(angleRadCW: single);
-

This item has no description.

@@ -1480,7 +1654,13 @@

Methods

+

+Adds a spline to the current path.

+

+ + +

It will be closed if the last point is equal to the first one.

+
procedure spline(const pts: array of TPointF; style: TSplineStyle= ssOutside);
-

This item has no description.

@@ -1488,33 +1668,39 @@

Methods

+

+Continues from current position with an opened spline.

+
procedure splineTo(const pts: array of TPointF; style: TSplineStyle= ssOutside);
-

This item has no description.

- + +

+Strokes the current path using the specified function.

+
Publicprocedure stroke(ADrawProc: TBGRAPathDrawProc; const AMatrix: TAffineMatrix; AData: pointer); overload;procedure stroke(ADrawProc: TBGRAPathDrawProc; AData: pointer); overload;
-

This item has no description.

- +
Publicprocedure stroke; overload;procedure stroke(ADrawProc: TBGRAPathDrawProc; const AMatrix: TAffineMatrix; AData: pointer); overload;

-may not render curve nicely

+Strokes the current path using the specified function and transformation matrix.

- + +

+Strokes the current path with the current stroke style.

+
Publicprocedure stroke(ADrawProc: TBGRAPathDrawProc; AData: pointer); overload;procedure stroke; overload;
-

This item has no description.

@@ -1522,7 +1708,9 @@

Methods

+

+Fill and stroke at the same time, with stroke being on top

+
procedure strokeOverFill;
-

This item has no description.

@@ -1530,7 +1718,9 @@

Methods

+

+Directly strokes a rectangle with the current stroke style.

+
procedure strokeRect(x,y,w,h: single);
-

This item has no description.

@@ -1538,7 +1728,9 @@

Methods

+

+Resets the stroke transformation matrix to the identity matrix, removing any stroke transformations.

+
procedure strokeResetTransform;
-

This item has no description.

@@ -1546,7 +1738,9 @@

Methods

+

+Apply scaling to the stroke. Can specify x and y scales independently.

+
procedure strokeScale(x,y: single);
-

This item has no description.

@@ -1554,7 +1748,9 @@

Methods

+

+Skews the stroke on the canvas along the X axis by the given angle in radians.

+
procedure strokeSkewx(angleRadCW: single);
-

This item has no description.

@@ -1562,31 +1758,39 @@

Methods

+

+Skews the stroke on the canvas along the Y axis by the given angle in radians.

+
procedure strokeSkewy(angleRadCW: single);
-

This item has no description.

- + +

+Sets the stroke to a solid color specified as TBGRAPixel

+
Publicprocedure strokeStyle(color: string); overload;procedure strokeStyle(color: TBGRAPixel); overload;
-

This item has no description.

- + +

+Sets the stroke to a texture using a texture provider.

+
Publicprocedure strokeStyle(color: TColor); overload;procedure strokeStyle(provider: IBGRACanvasTextureProvider2D); overload;
-

This item has no description.

- + +

+Sets the stroke to a solid color specified as TColor

+
Publicprocedure strokeStyle(provider: IBGRACanvasTextureProvider2D); overload;procedure strokeStyle(color: TColor); overload;
-

This item has no description.

@@ -1594,15 +1798,23 @@

Methods

+

+Sets the stroke to a texture defined by IBGRAScanner interface.

+

+ + +

The texture can be a TBGRABitmap object or any custom scanner.

+
procedure strokeStyle(texture: IBGRAScanner); overload;
-

This item has no description.

- + +

+Sets the stroke to a solid color specified as CSS string

+
Publicprocedure strokeStyle(color: TBGRAPixel); overload;procedure strokeStyle(color: string); overload;
-

This item has no description.

@@ -1610,7 +1822,9 @@

Methods

+

+Draws directly the outline of the specified text using current stroke style.

+
procedure strokeText(AText: string; x,y: single);
-

This item has no description.

@@ -1618,7 +1832,9 @@

Methods

+

+Adds the path of a text.

+
procedure text(AText: string; x,y: single);
-

This item has no description.

@@ -1626,7 +1842,9 @@

Methods

+

+Converts the current polyline path to a spline.

+
procedure toSpline(closed: boolean; style: TSplineStyle= ssOutside);
-

This item has no description.

@@ -1634,7 +1852,9 @@

Methods

+

+Applies a pre-built transformation matrix to the canvas.

+
procedure transform(AMatrix: TAffineMatrix); overload;
-

This item has no description.

@@ -1642,7 +1862,9 @@

Methods

+

+Applies a transformation matrix to the canvas.

+
procedure transform(m11,m21, m12,m22, m13,m23: single); overload;
-

This item has no description.

@@ -1650,7 +1872,9 @@

Methods

+

+Translates the canvas origin to a new location.

+
procedure translate(x,y: single);
-

This item has no description.

@@ -1658,7 +1882,9 @@

Methods

+

+Reintroduce the current path in the drawing region.

+
procedure unclip;
-

This item has no description.

Properties

@@ -1667,7 +1893,9 @@

Properties

+

+The current path as an array of points.

+
property currentPath: ArrayOfTPointF read GetCurrentPathAsPoints;
-

This item has no description.

@@ -1675,7 +1903,9 @@

Properties

+

+The direction of the text (left-to-right, right-to-left).

+
property direction: TFontBidiMode read GetTextDirection write SetTextDirection;
-

This item has no description.

@@ -1683,7 +1913,9 @@

Properties

+

+The rule to use for filling shapes (non-zero winding, even-odd alternate).

+
property fillMode: TFillMode read GetFillMode write SetFillMode;
-

This item has no description.

@@ -1691,7 +1923,9 @@

Properties

+

+Combined font properties in CSS-like string format.

+
property font: string read GetFontString write SetFontString;
-

This item has no description.

@@ -1699,7 +1933,9 @@

Properties

+

+The size of the font's em square in pixels.

+
property fontEmHeight: single read GetFontEmHeight write SetFontEmHeight;
-

This item has no description.

@@ -1707,7 +1943,9 @@

Properties

+

+The name of the font for text drawing.

+
property fontName: string read GetFontName write SetFontName;
-

This item has no description.

@@ -1715,7 +1953,9 @@

Properties

+

+The renderer used for custom font drawing.

+
property fontRenderer: TBGRACustomFontRenderer read GetFontRenderer write SetFontRenderer;
-

This item has no description.

@@ -1723,7 +1963,9 @@

Properties

+

+The style of the font using LCL enumeration set.

+
property fontStyle: TFontStyles read GetFontStyle write SetFontStyle;
-

This item has no description.

@@ -1731,7 +1973,9 @@

Properties

+

+The global alpha (transparency) applied to drawings.

+
property globalAlpha: single read GetGlobalAlpha write SetGlobalAlpha;
-

This item has no description.

@@ -1739,7 +1983,13 @@

Properties

+

+Indicates if any shadow is set.

+

+ + +

A shadow is visible if the shadow color is set and the offset or the radius is set.

+
property hasShadow: boolean read GetHasShadow;
-

This item has no description.

@@ -1747,7 +1997,9 @@

Properties

+

+The height of the underlying bitmap.

+
property height: Integer read GetHeight;
-

This item has no description.

@@ -1755,7 +2007,9 @@

Properties

+

+The shape used at the end of lines (butt, round, square).

+
property lineCap: string read GetLineCap write SetLineCap;
-

This item has no description.

@@ -1763,7 +2017,9 @@

Properties

+

+Line cap style using LCL enumeration.

+
property lineCapLCL: TPenEndCap read GetLineCapLCL write SetLineCapLCL;
-

This item has no description.

@@ -1771,7 +2027,9 @@

Properties

+

+The type of corner created when two lines meet (miter, round, bevel).

+
property lineJoin: string read GetlineJoin write SetLineJoin;
-

This item has no description.

@@ -1779,7 +2037,9 @@

Properties

+

+Line join style using LCL enumeration.

+
property lineJoinLCL: TPenJoinStyle read GetlineJoinLCL write SetLineJoinLCL;
-

This item has no description.

@@ -1787,7 +2047,9 @@

Properties

+

+The width of lines drawn on the canvas.

+
property lineWidth: single read GetLineWidth write SetLineWidth;
-

This item has no description.

@@ -1795,7 +2057,9 @@

Properties

+

+The transformation matrix applied to the path.

+
property matrix: TAffineMatrix read GetMatrix write SetMatrix;
-

This item has no description.

@@ -1803,7 +2067,9 @@

Properties

+

+The maximum miter length when connecting lines.

+
property miterLimit: single read GetMiterLimit write SetMiterLimit;
-

This item has no description.

@@ -1811,7 +2077,9 @@

Properties

+

+Determines if coordinates are centered on pixels (false by default).

+
property pixelCenteredCoordinates: boolean read GetPixelCenteredCoordinates write SetPixelCenteredCoordinates;
-

This item has no description.

@@ -1819,7 +2087,9 @@

Properties

+

+The blur level of the shadow.

+
property shadowBlur: single read GetShadowBlur write SetShadowBlur;
-

This item has no description.

@@ -1827,7 +2097,9 @@

Properties

+

+If true, uses a faster but less accurate shadow algorithm.

+
property shadowFastest: boolean read GetShadowFastest write SetShadowFastest;
-

This item has no description.

@@ -1835,7 +2107,9 @@

Properties

+

+The offset of the shadow as a TPointF.

+
property shadowOffset: TPointF read GetShadowOffset write SetShadowOffset;
-

This item has no description.

@@ -1843,7 +2117,9 @@

Properties

+

+The horizontal offset of the shadow from the shape.

+
property shadowOffsetX: single read GetShadowOffsetX write SetShadowOffsetX;
-

This item has no description.

@@ -1851,7 +2127,9 @@

Properties

+

+The vertical offset of the shadow from the shape.

+
property shadowOffsetY: single read GetShadowOffsetY write SetShadowOffsetY;
-

This item has no description.

@@ -1859,7 +2137,9 @@

Properties

+

+The transformation matrix applied to pen.

+
property strokeMatrix: TAffineMatrix read GetStrokeMatrix write SetStrokeMatrix;
-

This item has no description.

@@ -1867,7 +2147,9 @@

Properties

+

+The underlying bitmap where the canvas draws.

+
property surface: TBGRACustomBitmap read FSurface;
-

This item has no description.

@@ -1875,7 +2157,9 @@

Properties

+

+Horizontal alignment of text (left, right, center, start, end).

+
property textAlign: string read GetTextAlign write SetTextAlign;
-

This item has no description.

@@ -1883,7 +2167,9 @@

Properties

+

+Horizontal alignment of text using LCL enumeration.

+
property textAlignLCL: TAlignment read GetTextAlignLCL write SetTextAlignLCL;
-

This item has no description.

@@ -1891,7 +2177,9 @@

Properties

+

+Vertical alignment of text (top, middle, alphabetic, bottom).

+
property textBaseline: string read GetTextBaseline write SetTextBaseline;
-

This item has no description.

@@ -1899,6 +2187,8 @@

Properties

+

+The width of the underlying bitmap.

+
property width: Integer read GetWidth;
-

This item has no description.

diff --git a/docs/doc/BGRADefaultBitmap.TBGRADefaultBitmap.html b/docs/doc/BGRADefaultBitmap.TBGRADefaultBitmap.html index 6ca18d4..94631cd 100644 --- a/docs/doc/BGRADefaultBitmap.TBGRADefaultBitmap.html +++ b/docs/doc/BGRADefaultBitmap.TBGRADefaultBitmap.html @@ -1525,7 +1525,44 @@

Methods

function ComputeOpenedSpline(const APoints: array of TPointF; AStyle: TSplineStyle): ArrayOfTPointF; override; -

This item has no description.

+

This item has no description. Showing description inherited from TBGRACustomBitmap.ComputeOpenedSpline.

+Compute an opened spline passing by the given points. + +

Example of drawing a spline on a form: + +

computeopenedspline + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var
+  image: TBGRABitmap;
+  pts: array of TPointF;
+  storedSpline: array of TPointF;
+  c: TBGRAPixel;
+begin
+    image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
+    c := clWindowText;
+
+    //rectangular polyline
+    setlength(pts,4);
+    pts[0] := PointF(50,50);
+    pts[1] := PointF(150,50);
+    pts[2] := PointF(150,150);
+    pts[3] := PointF(50,150);
+    image.DrawPolylineAntialias(pts,BGRA(255,0,0,150),1);
+
+    //compute spline points and draw as a polyline
+    storedSpline := image.ComputeOpenedSpline(pts,ssVertexToSide);
+    image.DrawPolylineAntialias(storedSpline,c,1);
+
+    image.Draw(Canvas,0,0,True);
+    image.free;
+end;
+ +

+ diff --git a/docs/doc/BGRAGradientScanner.TBGRARandomScanner.html b/docs/doc/BGRAGradientScanner.TBGRARandomScanner.html index 11bb35e..f4d8479 100644 --- a/docs/doc/BGRAGradientScanner.TBGRARandomScanner.html +++ b/docs/doc/BGRAGradientScanner.TBGRARandomScanner.html @@ -31,7 +31,7 @@

Description

Example filling a form with random pixels: -

randomscanner +

randomscanner

diff --git a/docs/doc/BGRAGradients.TPhongShading.html b/docs/doc/BGRAGradients.TPhongShading.html index 6145d33..bc2e72d 100644 --- a/docs/doc/BGRAGradients.TPhongShading.html +++ b/docs/doc/BGRAGradients.TPhongShading.html @@ -31,7 +31,9 @@

Description

Phong shading consist in adding an ambiant light, a diffuse light (angle between light and object), and a specular light (angle between light, object and observer, i.e. reflected light). -

Height maps are grayscale images or a precise bitmaps filled with MapHeightToBGRA. They are used to determine orientation and position of the surface.

+

Height maps are grayscale images or a precise bitmaps filled with MapHeightToBGRA. They are used to determine orientation and position of the surface. + +

See tutorial on Phong shading.

Hierarchy

-Draw a hemisphere of the specified color

+Draw a hemisphere of the specified color.

+

+ + +

Example drawing a red sphere on a form: + +

tphongshading_drawsphere + +

+ +
+procedure TForm1.FormPaint(Sender: TObject);
+var
+  image: TBGRABitmap;
+  phong: TPhongShading;
+begin
+  phong := TPhongShading.Create;
+  phong.LightPosition := Point(100, 100);
+  phong.LightPositionZ := 150;
+  phong.SpecularIndex := 20;
+  phong.AmbientFactor := 0.4;
+  phong.LightSourceIntensity := 250;
+  phong.LightSourceDistanceTerm := 200;
+
+  image := TBGRABitmap.Create(ClientWidth,ClientHeight,ColorToBGRA(ColorToRGB(clBtnFace)));
+
+  phong.DrawSphere(image,rect(20,20,120,120),50,BGRA(255,0,0));
+
+  image.Draw(Canvas,0,0,True);
+  image.free;
+end;
+ +

diff --git a/docs/doc/BGRAGradients.html b/docs/doc/BGRAGradients.html index 0d3c80f..6fdce3a 100644 --- a/docs/doc/BGRAGradients.html +++ b/docs/doc/BGRAGradients.html @@ -152,7 +152,38 @@

Functions and Procedures

-Creates a tilable random grayscale image

+Creates a tilable random grayscale image.

+

+ + +

Example filling a form with Perlin noise: + +

createcyclicperlinnoisemap + +

+ +
+uses
+  BGRABitmap, BGRABitmapTypes, BGRAGradients;
+
+procedure TForm1.FormPaint(Sender: TObject);
+var
+  image,tex: TBGRABitmap;
+
+begin
+    image := TBGRABitmap.Create(ClientWidth,ClientHeight);
+
+    tex := CreateCyclicPerlinNoiseMap(100,100);
+    image.FillRect(0,0,image.Width,image.Height, tex, dmSet);
+    tex.free;
+
+    image.Draw(Canvas,0,0,True);
+    image.free;
+end;
+ +

+ +

See also tutorial on creating textures.

diff --git a/docs/doc/BGRAGrayscaleMask.TGrayscaleMask.html b/docs/doc/BGRAGrayscaleMask.TGrayscaleMask.html index e39e5d2..ef18700 100644 --- a/docs/doc/BGRAGrayscaleMask.TGrayscaleMask.html +++ b/docs/doc/BGRAGrayscaleMask.TGrayscaleMask.html @@ -31,7 +31,7 @@

Description

Example on applying a grayscale mask: -

A red triangle is masked using an ellipse shape. mask_poly

+

A red triangle is masked using an ellipse shape. mask_poly

 uses BGRABitmap, BGRABitmapTypes, BGRAGrayscaleMask;
diff --git a/docs/doc/BGRASVG.TBGRASVG.html b/docs/doc/BGRASVG.TBGRASVG.html
index f8642e6..f636856 100644
--- a/docs/doc/BGRASVG.TBGRASVG.html
+++ b/docs/doc/BGRASVG.TBGRASVG.html
@@ -31,7 +31,7 @@ 

Description

Example of reading and displaying SVG images: -

svg_example +

svg_example

diff --git a/docs/doc/BGRASVGShapes.TSVGContent.html b/docs/doc/BGRASVGShapes.TSVGContent.html index 4a41bf2..dc7d260 100644 --- a/docs/doc/BGRASVGShapes.TSVGContent.html +++ b/docs/doc/BGRASVGShapes.TSVGContent.html @@ -33,7 +33,7 @@

Description

Example creating an SVG file: -

content +

content

diff --git a/docs/doc/image_1.png b/docs/doc/image_1.png index 8ce7c2c..84c300e 100644 Binary files a/docs/doc/image_1.png and b/docs/doc/image_1.png differ diff --git a/docs/doc/image_10.png b/docs/doc/image_10.png new file mode 100644 index 0000000..04b74c4 Binary files /dev/null and b/docs/doc/image_10.png differ diff --git a/docs/doc/image_11.png b/docs/doc/image_11.png new file mode 100644 index 0000000..91e0d23 Binary files /dev/null and b/docs/doc/image_11.png differ diff --git a/docs/doc/image_12.png b/docs/doc/image_12.png new file mode 100644 index 0000000..98e4dfb Binary files /dev/null and b/docs/doc/image_12.png differ diff --git a/docs/doc/image_13.png b/docs/doc/image_13.png new file mode 100644 index 0000000..d4e7696 Binary files /dev/null and b/docs/doc/image_13.png differ diff --git a/docs/doc/image_14.svg b/docs/doc/image_14.svg new file mode 100644 index 0000000..1a70245 --- /dev/null +++ b/docs/doc/image_14.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/doc/image_2.png b/docs/doc/image_2.png index 1302ab8..aacb230 100644 Binary files a/docs/doc/image_2.png and b/docs/doc/image_2.png differ diff --git a/docs/doc/image_3.png b/docs/doc/image_3.png index 91e0d23..8ce7c2c 100644 Binary files a/docs/doc/image_3.png and b/docs/doc/image_3.png differ diff --git a/docs/doc/image_4.png b/docs/doc/image_4.png index 98e4dfb..c684f68 100644 Binary files a/docs/doc/image_4.png and b/docs/doc/image_4.png differ diff --git a/docs/doc/image_5.png b/docs/doc/image_5.png index d4e7696..98b04ba 100644 Binary files a/docs/doc/image_5.png and b/docs/doc/image_5.png differ diff --git a/docs/doc/image_6.png b/docs/doc/image_6.png new file mode 100644 index 0000000..51a03e4 Binary files /dev/null and b/docs/doc/image_6.png differ diff --git a/docs/doc/image_7.png b/docs/doc/image_7.png new file mode 100644 index 0000000..e86298e Binary files /dev/null and b/docs/doc/image_7.png differ diff --git a/docs/doc/image_8.png b/docs/doc/image_8.png new file mode 100644 index 0000000..1302ab8 Binary files /dev/null and b/docs/doc/image_8.png differ diff --git a/docs/doc/image_9.png b/docs/doc/image_9.png new file mode 100644 index 0000000..d8b448f Binary files /dev/null and b/docs/doc/image_9.png differ diff --git a/docs/doc/tipuesearch/tipuesearch_content.js b/docs/doc/tipuesearch/tipuesearch_content.js index 2e93755..702e065 100644 --- a/docs/doc/tipuesearch/tipuesearch_content.js +++ b/docs/doc/tipuesearch/tipuesearch_content.js @@ -498,7 +498,7 @@ var tipuesearch = {"pages": [ {"title": "BGRABitmapTypes.TBGRACustomBitmap.Create", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#Create-string-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.Create", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#Create-TStream-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.Create", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#Create-string-boolean-TBGRALoadingOptions-"}, - {"title": "BGRABitmapTypes.TBGRACustomBitmap.Create", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#Create-TBitmap-boolean-"}, + {"title": "BGRABitmapTypes.TBGRACustomBitmap.Create", "text": " Example of loading and displaying an image on a form: procedure TForm1.FormCreate(Sender: TObject); begin image := TBGRABitmap.Create('image.png'); end; procedure TForm1.FormDestroy(Sender: TObject); begin image.free; end; procedure TForm1.FormPaint(Sender: TObject); begin image.Draw(Canvas, 0, 0, True); // assume image is opaque end; ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#Create-TBitmap-boolean-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.Create", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#Create-TFPCustomImage-Boolean-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.Create", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#Create-TBitmap-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeArc65536", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeArc65536-single-single-single-single-word-word-single-"}, @@ -507,14 +507,14 @@ var tipuesearch = {"pages": [ {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeBezierCurve", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeBezierCurve-TCubicBezierCurve-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeBezierSpline", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeBezierSpline-arrayofTQuadraticBezierCurve-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeBezierSpline", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeBezierSpline-arrayofTCubicBezierCurve-"}, - {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeClosedSpline", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeClosedSpline-arrayofTPointF-TSplineStyle-"}, + {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeClosedSpline", "text": " Example of drawing a spline on a form: procedure TForm1.FormPaint(Sender: TObject); var image: TBGRABitmap; pts: array of TPointF; storedSpline: array of TPointF; c: TBGRAPixel; begin image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace); c := clWindowText; //rectangular polyline setlength(pts,4); pts[0] := PointF(50,50); pts[1] := PointF(150,50); pts[2] := PointF(150,150); pts[3] := PointF(50,150); image.DrawPolylineAntialias(pts,BGRA(255,0,0,150),1); //compute spline points and draw as a polyline storedSpline := image.ComputeClosedSpline(pts,ssVertexToSide); image.DrawPolylineAntialias(storedSpline,c,1); image.Draw(Canvas,0,0,True); image.free; end; ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeClosedSpline-arrayofTPointF-TSplineStyle-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeEllipse", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeEllipse-single-single-single-single-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeEllipse", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeEllipse-single-single-single-single-single-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeEllipseBorder", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeEllipseBorder-single-single-single-single-single-single-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeEllipseBorder", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeEllipseBorder-TPointF-TPointF-TPointF-single-single-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeEllipseContour", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeEllipseContour-single-single-single-single-single-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeEllipseContour", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeEllipseContour-TPointF-TPointF-TPointF-single-"}, - {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeOpenedSpline", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeOpenedSpline-arrayofTPointF-TSplineStyle-"}, + {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeOpenedSpline", "text": " Example of drawing a spline on a form: procedure TForm1.FormPaint(Sender: TObject); var image: TBGRABitmap; pts: array of TPointF; storedSpline: array of TPointF; c: TBGRAPixel; begin image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace); c := clWindowText; //rectangular polyline setlength(pts,4); pts[0] := PointF(50,50); pts[1] := PointF(150,50); pts[2] := PointF(150,150); pts[3] := PointF(50,150); image.DrawPolylineAntialias(pts,BGRA(255,0,0,150),1); //compute spline points and draw as a polyline storedSpline := image.ComputeOpenedSpline(pts,ssVertexToSide); image.DrawPolylineAntialias(storedSpline,c,1); image.Draw(Canvas,0,0,True); image.free; end; ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeOpenedSpline-arrayofTPointF-TSplineStyle-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputePie65536", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputePie65536-single-single-single-single-word-word-single-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputePieRad", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputePieRad-single-single-single-single-single-single-single-"}, {"title": "BGRABitmapTypes.TBGRACustomBitmap.ComputeRoundRect", "text": " ", "tags": "", "url": "BGRABitmapTypes.TBGRACustomBitmap.html#ComputeRoundRect-single-single-single-single-single-single-TRoundRectangleOptions-single-"}, @@ -1900,7 +1900,7 @@ var tipuesearch = {"pages": [ {"title": "BGRABitmapTypes.TFPColorHelper.FromYCbCr709JPEG", "text": " ", "tags": "", "url": "BGRABitmapTypes.TFPColorHelper.html#FromYCbCr709JPEG-TYCbCr709JPEG-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.Create", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#Create-integer-integer-TPixel-"}, - {"title": "BGRABitmapTypes.TGenericUniversalBitmap.CreateBrushTexture", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#CreateBrushTexture-TBrushStyle-TPixel-TPixel-integer-integer-single-"}, + {"title": "BGRABitmapTypes.TGenericUniversalBitmap.CreateBrushTexture", "text": " Example using a diagonal cross texture to fill shapes on a form: procedure TForm1.FormPaint(Sender: TObject); var image,tex: TBGRABitmap; c: TBGRAPixel; x,y,rx,ry: single; begin image := TBGRABitmap.Create(ClientWidth,ClientHeight,ColorToBGRA(ColorToRGB(clBtnFace))); c := ColorToBGRA(ColorToRGB(clWindowText)); //ellipse coordinates x := 150; y := 100; rx := 100; ry := 50; //loads a "diagcross" brush with white pattern and orange background tex := image.CreateBrushTexture(bsDiagCross,BGRAWhite,BGRA(255,192,0)) as TBGRABitmap; image.FillEllipseAntialias(x,y,rx-0.5,ry-0.5,tex); image.EllipseAntialias(x,y,rx,ry,c,1); //draw outline image.RoundRectAntialias(x-rx-10,y-ry-10,x+rx+10,y+ry+10,20,20,c,11); image.RoundRectAntialias(x-rx-10,y-ry-10,x+rx+10,y+ry+10,20,20,tex,9); tex.Free; image.Draw(Canvas,0,0,True); image.free; end; ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#CreateBrushTexture-TBrushStyle-TPixel-TPixel-integer-integer-single-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.Equals", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#Equals-TPixel-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.Equals", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#Equals-TCustomUniversalBitmap-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.GetDifferenceBounds", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#GetDifferenceBounds-TCustomUniversalBitmap-"}, @@ -1969,7 +1969,7 @@ var tipuesearch = {"pages": [ {"title": "BGRABitmapTypes.TGenericUniversalBitmap.Rectangle", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#Rectangle-TRect-TPixel-TPixel-TDrawMode-Word-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.Rectangle", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#Rectangle-TRect-TPixel-TDrawMode-Word-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.Rectangle", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#Rectangle-integer-integer-integer-integer-TPixel-TDrawMode-Word-"}, - {"title": "BGRABitmapTypes.TGenericUniversalBitmap.RectangleAntialias", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#RectangleAntialias-single-single-single-single-TPixel-single-"}, + {"title": "BGRABitmapTypes.TGenericUniversalBitmap.RectangleAntialias", "text": " Example drawing a rectangle on a form: procedure TForm1.FormPaint(Sender: TObject); var image: TBGRABitmap; c: TBGRAPixel; begin image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace); c := clWindowText; image.RectangleAntialias(80,80,300,200, c, 50); image.Draw(Canvas,0,0,True); image.free; end; ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#RectangleAntialias-single-single-single-single-TPixel-single-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.ReplaceColor", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#ReplaceColor-TPixel-TPixel-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.ReplaceColor", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#ReplaceColor-TRect-TPixel-TPixel-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.ReplaceTransparent", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#ReplaceTransparent-TRect-TPixel-"}, @@ -1989,7 +1989,7 @@ var tipuesearch = {"pages": [ {"title": "BGRABitmapTypes.TGenericUniversalBitmap.InternalSwapPixels", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#InternalSwapPixels-PByte-PByte-PtrInt-PtrInt-integer-"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.Data", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#Data"}, {"title": "BGRABitmapTypes.TGenericUniversalBitmap.ScanLine", "text": " The parameter y ranges from 0 to Height-1 ", "tags": "", "url": "BGRABitmapTypes.TGenericUniversalBitmap.generic.html#ScanLine"}, - {"title": "BGRABitmapTypes.TGSBAPixel", "text": " G stands for corrected hue and B stands for actual brightness. Values range from 0 to 65535. ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixel.html"}, + {"title": "BGRABitmapTypes.TGSBAPixel", "text": " G stands for corrected hue and B stands for actual brightness. Values range from 0 to 65535. See THSLAPixel for this colorspace without hue and brightness correction. Example of drawing a gradient in GSB colorspace: procedure TForm1.FormPaint(Sender: TObject); var x,y: integer; p: PBGRAPixel; image: TBGRABitmap; gsba: TGSBAPixel; begin image := TBGRABitmap.Create(ClientWidth,ClientHeight); gsba.lightness := 32768; gsba.alpha := 65535; for y := 0 to image.Height-1 do begin p := image.Scanline[y]; gsba.saturation := y*65536 div image.Height; for x := 0 to image.Width-1 do begin gsba.hue := x*65536 div image.Width; pˆ:= GSBAToBGRA(gsba); inc(p); end; end; image.InvalidateBitmap; // changed by direct access image.Draw(Canvas,0,0,True); image.free; end; ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixel.html"}, {"title": "BGRABitmapTypes.TGSBAPixel.hue", "text": " Extremum values 0 and 65535 are red. G is corrected in the sense that each segment does not have the same size. green-cyan and violet-red ranges are shorter, while red-yellow and cyan-blue are wider. ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixel.html#hue"}, {"title": "BGRABitmapTypes.TGSBAPixel.saturation", "text": " 0 is gray and 65535 is the brightest color (excluding white). Given a certain lightness, it is not always possible to have the full saturation of the color. ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixel.html#saturation"}, {"title": "BGRABitmapTypes.TGSBAPixel.lightness", "text": " 0 is black, 32768 is normal, and 65535 is white. At 32768, depending on the hue, contrary to THSLAPixel, the color may or may not be mixed with black/white. Blue colors have a lower brightness and thus the full saturation is achieved under 32768. Conversely yellow colors have higher brightness and thus the full saturation is achieved over 32768. ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixel.html#lightness"}, @@ -2056,7 +2056,7 @@ var tipuesearch = {"pages": [ {"title": "BGRABitmapTypes.TGSBAPixelHelper.FromYCbCr601JPEG", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixelHelper.html#FromYCbCr601JPEG-TYCbCr601JPEG-"}, {"title": "BGRABitmapTypes.TGSBAPixelHelper.FromYCbCr709", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixelHelper.html#FromYCbCr709-TYCbCr709-"}, {"title": "BGRABitmapTypes.TGSBAPixelHelper.FromYCbCr709JPEG", "text": " ", "tags": "", "url": "BGRABitmapTypes.TGSBAPixelHelper.html#FromYCbCr709JPEG-TYCbCr709JPEG-"}, - {"title": "BGRABitmapTypes.THSLAPixel", "text": " Gamma correction is taken into account. Values range from 0 to 65535. ", "tags": "", "url": "BGRABitmapTypes.THSLAPixel.html"}, + {"title": "BGRABitmapTypes.THSLAPixel", "text": " Values range from 0 to 65535. See TGSBAPixel for corrected hue and brightness. Example drawing all the colors in HSL colorspace: procedure TForm1.FormPaint(Sender: TObject); var x,y: integer; p: PBGRAPixel; image: TBGRABitmap; hsla: THSLAPixel; begin image := TBGRABitmap.Create(ClientWidth,ClientHeight); hsla.lightness := 32768; hsla.alpha := 65535; for y := 0 to image.Height-1 do begin p := image.Scanline[y]; hsla.saturation := y*65536 div image.Height; for x := 0 to image.Width-1 do begin hsla.hue := x*65536 div image.Width; pˆ:= HSLAToBGRA(hsla); inc(p); end; end; image.InvalidateBitmap; // changed by direct access image.Draw(Canvas,0,0,True); image.free; end; ", "tags": "", "url": "BGRABitmapTypes.THSLAPixel.html"}, {"title": "BGRABitmapTypes.THSLAPixel.hue", "text": " The 6 primary colors red/yellow/green/cyan/blue/violet are stretched equally. Extremum values 0 and 65535 are red ", "tags": "", "url": "BGRABitmapTypes.THSLAPixel.html#hue"}, {"title": "BGRABitmapTypes.THSLAPixel.saturation", "text": " 0 is gray and 65535 is the brightest color (including white) ", "tags": "", "url": "BGRABitmapTypes.THSLAPixel.html#saturation"}, {"title": "BGRABitmapTypes.THSLAPixel.lightness", "text": " 0 is black, 32768 is normal, and 65535 is white ", "tags": "", "url": "BGRABitmapTypes.THSLAPixel.html#lightness"}, @@ -4459,42 +4459,39 @@ var tipuesearch = {"pages": [ {"title": "BGRACanvas2D.IBGRACanvasTextureProvider2D.texture", "text": " ", "tags": "", "url": "BGRACanvas2D.IBGRACanvasTextureProvider2D.html#texture"}, {"title": "BGRACanvas2D.TBGRACanvas2D", "text": " TBGRACanvas2D is the surface to use when rendering with TBGRASVG, TBGRACustomTypeWriter and TBGRAVectorizedFont. Comparison between TBGRACanvas2D and Javascript HTML canvas: BGRABitmap JavaScript uses BGRABitmap, BGRABitmapTypes, BGRACanvas2D; procedure TForm1.FormPaint(Sender: TObject); var bmp: TBGRABitmap; ctx: TBGRACanvas2D; gradient: IBGRACanvasGradient2D; begin bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, StrToBGRA('#E0E2E5')); ctx := bmp.Canvas2d; // Draw the outer rounded rectangle gradient := ctx.createLinearGradient(100, 20, 100, 180); gradient.addColorStop(0, 'white'); gradient.addColorStop(1, '#7C878A'); ctx.fillStyle(gradient); ctx.beginPath(); ctx.roundRect(20, 20, 160, 160, 20); ctx.save(); ctx.shadowBlur := 10; ctx.shadowColor('rgba(0,0,0, .8)'); ctx.shadowOffsetX := 0; ctx.shadowOffsetY := 10; ctx.fill(); ctx.restore(); // Draw the blue circle with gradient gradient := ctx.createLinearGradient(100, 30, 100, 170); gradient.addColorStop(0, '#CAEBF5'); gradient.addColorStop(1, '#0F5369'); ctx.strokeStyle(gradient); ctx.beginPath(); ctx.arc(100, 100, 70, 0, Pi * 2); ctx.lineWidth := 10; ctx.stroke(); gradient := ctx.createLinearGradient(100, 50, 100, 150); gradient.addColorStop(0, '#003C50'); gradient.addColorStop(1, '#53E6FF'); ctx.strokeStyle(gradient); ctx.beginPath(); ctx.arc(100, 100, 60, 0, Pi * 2); ctx.lineWidth := 10; ctx.stroke(); bmp.Draw(Canvas, 0,0, true); bmp.Free; end; Try on JSFiddle var my_canvas = document.getElementById('canvas'), ctx = my_canvas.getContext("2d"); ctx.fillStyle = "#E0E2E5"; ctx.fillRect(0, 0, 200, 200); // Draw the outer rounded rectangle var gradient = ctx.createLinearGradient(100, 20, 100, 180); gradient.addColorStop(0, "white"); gradient.addColorStop(1, "#7C878A"); ctx.fillStyle = gradient; ctx.beginPath(); ctx.roundRect(20, 20, 160, 160, 20); ctx.save(); ctx.shadowBlur = 10; ctx.shadowColor = "rgba(0,0,0, .6)"; ctx.shadowOffsetX = 0; ctx.shadowOffsetY = 10; ctx.fill(); ctx.restore(); // Draw the blue circle with gradient gradient = ctx.createLinearGradient(100, 30, 100, 170); gradient.addColorStop(0, "#CAEBF5"); gradient.addColorStop(1, "#0F5369"); ctx.strokeStyle = gradient; ctx.beginPath(); ctx.arc(100, 100, 70, 0, Math.PI * 2); ctx.lineWidth = 10; ctx.stroke(); gradient = ctx.createLinearGradient(100, 50, 100, 150); gradient.addColorStop(0, "#003C50"); gradient.addColorStop(1, "#53E6FF"); ctx.strokeStyle = gradient; ctx.beginPath(); ctx.arc(100, 100, 60, 0, Math.PI * 2); ctx.lineWidth = 10; ctx.stroke(); ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html"}, {"title": "BGRACanvas2D.TBGRACanvas2D.antialiasing", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#antialiasing"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.gradientGammaCorrection", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#gradientGammaCorrection"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.linearBlend", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#linearBlend"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.gradientGammaCorrection", "text": " It is less accurate but it reflects more how HTML Canvas works. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#gradientGammaCorrection"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.linearBlend", "text": " In this case, gamma correction won't be applied. It is less accurate but it reflects more how HTML Canvas works. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#linearBlend"}, {"title": "BGRACanvas2D.TBGRACanvas2D.Create", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#Create-TBGRACustomBitmap-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.Destroy", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#Destroy"}, {"title": "BGRACanvas2D.TBGRACanvas2D.createLinearGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createLinearGradient-single-single-single-single-TBGRACustomGradient-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.createLinearGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createLinearGradient-TPointF-TPointF-TBGRACustomGradient-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.createLinearGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createLinearGradient-single-single-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.createLinearGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createLinearGradient-TPointF-TPointF-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.createLinearGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createLinearGradient-single-single-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.createPattern", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createPattern-IBGRAScanner-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.createPattern", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createPattern-TBGRACustomBitmap-string-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.createRadialGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createRadialGradient-single-single-single-single-single-single-TBGRACustomGradient-boolean-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.createPattern", "text": " repetition can be: repeat-x: repetition along X axis repeat-y: repetition along Y axis no-repeat: image is drawn only once ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createPattern-TBGRACustomBitmap-string-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.createRadialGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createRadialGradient-TPointF-single-TPointF-single-TBGRACustomGradient-boolean-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.createRadialGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createRadialGradient-single-single-single-single-single-single-boolean-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.createRadialGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createRadialGradient-single-single-single-single-single-single-TBGRACustomGradient-boolean-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.createRadialGradient", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#createRadialGradient-TPointF-single-TPointF-single-boolean-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.CSSFontNameToLCL", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#CSSFontNameToLCL-string-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.FontNameListToStr", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#FontNameListToStr-ArrayOfString-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.getLineStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#getLineStyle"}, {"title": "BGRACanvas2D.TBGRACanvas2D.getShadowColor", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#getShadowColor"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.isPointInPath", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#isPointInPath-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.isPointInPath", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#isPointInPath-TPointF-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.isPointInPath", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#isPointInPath-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.measureText", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#measureText-string-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.StrToFontNameList", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#StrToFontNameList-string-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.toDataURL", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#toDataURL-string-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.QueryInterface", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#QueryInterface-TGUID-const-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D._AddRef", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#_AddRef"}, - {"title": "BGRACanvas2D.TBGRACanvas2D._Release", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#_Release"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.addPath", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#addPath-IBGRAPath-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.addPath", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#addPath-string-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.addPath", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#addPath-IBGRAPath-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.arc", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arc-single-single-single-single-single-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.arc", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arc-single-single-single-single-single-boolean-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.arc", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arc-single-single-single-single-single-single-single-boolean-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.arc", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arc-TArcDef-TArcDef-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.arc", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arc-single-single-single-single-single-single-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.arc", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arc-single-single-single-single-single-single-single-boolean-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.arc", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arc-single-single-single-single-single-boolean-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.arcTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arcTo-single-single-single-boolean-boolean-single-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.arcTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arcTo-TPointF-TPointF-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.arcTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arcTo-single-single-single-single-single-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.arcTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arcTo-TPointF-TPointF-single-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.arcTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#arcTo-single-single-single-boolean-boolean-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.beginPath", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#beginPath"}, {"title": "BGRACanvas2D.TBGRACanvas2D.bezierCurveTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#bezierCurveTo-single-single-single-single-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.bezierCurveTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#bezierCurveTo-TPointF-TPointF-TPointF-TPointF-"}, @@ -4509,24 +4506,24 @@ var tipuesearch = {"pages": [ {"title": "BGRACanvas2D.TBGRACanvas2D.drawImage", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#drawImage-TBGRACustomBitmap-single-single-single-single-TResampleFilter-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.ellipse", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#ellipse-single-single-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fill", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fill"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.fill", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fill-TBGRAPathFillProc-TAffineMatrix-pointer-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fill", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fill-TBGRAPathFillProc-pointer-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.fill", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fill-TBGRAPathFillProc-TAffineMatrix-pointer-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fillOverStroke", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillOverStroke"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fillRect", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillRect-single-single-single-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-TColor-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-TBGRAPixel-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-string-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-IBGRACanvasTextureProvider2D-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-IBGRAScanner-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-string-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " The texture can be a TBGRABitmap object or any custom scanner. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-IBGRAScanner-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.fillStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillStyle-TColor-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fillText", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fillText-string-single-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.lineStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#lineStyle-TPenStyle-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.lineStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#lineStyle-arrayofsingle-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.lineStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#lineStyle-TPenStyle-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.lineTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#lineTo-TPointF-TPointF-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.lineTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#lineTo-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.mask", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#mask-TBGRACustomBitmap-single-single-TResampleFilter-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.mask", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#mask-TBGRACustomBitmap-single-single-single-single-TResampleFilter-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.moveTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#moveTo-TPointF-TPointF-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.moveTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#moveTo-single-single-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.moveTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#moveTo-TPointF-TPointF-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.openedSpline", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#openedSpline-arrayofTPointF-TSplineStyle-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.path", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#path-IBGRAPath-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.path", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#path-string-"}, @@ -4535,11 +4532,11 @@ var tipuesearch = {"pages": [ {"title": "BGRACanvas2D.TBGRACanvas2D.quadraticCurveTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#quadraticCurveTo-TPointF-TPointF-TPointF-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.rect", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#rect-single-single-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.resetTransform", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#resetTransform"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.restore", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#restore"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.restore", "text": " If there is no saved state, this method does nothing. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#restore"}, {"title": "BGRACanvas2D.TBGRACanvas2D.rotate", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#rotate-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.roundRect", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#roundRect-single-single-single-single-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.roundRect", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#roundRect-single-single-single-single-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.save", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#save"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.roundRect", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#roundRect-single-single-single-single-single-single-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.save", "text": " The drawing state consists of: the current transformation matrix. the current clipping region. the font parameters. the various properties of stroke and fill style. the shadow parameters. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#save"}, {"title": "BGRACanvas2D.TBGRACanvas2D.scale", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#scale-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.scale", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#scale-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.setTransform", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#setTransform-single-single-single-single-single-single-"}, @@ -4549,22 +4546,22 @@ var tipuesearch = {"pages": [ {"title": "BGRACanvas2D.TBGRACanvas2D.shadowNone", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#shadowNone"}, {"title": "BGRACanvas2D.TBGRACanvas2D.skewx", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#skewx-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.skewy", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#skewy-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.spline", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#spline-arrayofTPointF-TSplineStyle-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.spline", "text": " It will be closed if the last point is equal to the first one. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#spline-arrayofTPointF-TSplineStyle-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.splineTo", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#splineTo-arrayofTPointF-TSplineStyle-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.stroke", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#stroke-TBGRAPathDrawProc-pointer-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.stroke", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#stroke-TBGRAPathDrawProc-TAffineMatrix-pointer-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.stroke", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#stroke"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.stroke", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#stroke-TBGRAPathDrawProc-pointer-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.strokeOverFill", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeOverFill"}, {"title": "BGRACanvas2D.TBGRACanvas2D.strokeRect", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeRect-single-single-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.strokeResetTransform", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeResetTransform"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.strokeScale", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeScale-single-single-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.strokeScale", "text": " Can specify x and y scales independently. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeScale-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.strokeSkewx", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeSkewx-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.strokeSkewy", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeSkewy-single-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-string-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-TColor-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-IBGRACanvasTextureProvider2D-"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-IBGRAScanner-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-TBGRAPixel-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-IBGRACanvasTextureProvider2D-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-TColor-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " The texture can be a TBGRABitmap object or any custom scanner. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-IBGRAScanner-"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.strokeStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeStyle-string-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.strokeText", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#strokeText-string-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.text", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#text-string-single-single-"}, {"title": "BGRACanvas2D.TBGRACanvas2D.toSpline", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#toSpline-boolean-TSplineStyle-"}, @@ -4581,7 +4578,7 @@ var tipuesearch = {"pages": [ {"title": "BGRACanvas2D.TBGRACanvas2D.fontRenderer", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fontRenderer"}, {"title": "BGRACanvas2D.TBGRACanvas2D.fontStyle", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#fontStyle"}, {"title": "BGRACanvas2D.TBGRACanvas2D.globalAlpha", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#globalAlpha"}, - {"title": "BGRACanvas2D.TBGRACanvas2D.hasShadow", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#hasShadow"}, + {"title": "BGRACanvas2D.TBGRACanvas2D.hasShadow", "text": " A shadow is visible if the shadow color is set and the offset or the radius is set. ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#hasShadow"}, {"title": "BGRACanvas2D.TBGRACanvas2D.height", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#height"}, {"title": "BGRACanvas2D.TBGRACanvas2D.lineCap", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#lineCap"}, {"title": "BGRACanvas2D.TBGRACanvas2D.lineCapLCL", "text": " ", "tags": "", "url": "BGRACanvas2D.TBGRACanvas2D.html#lineCapLCL"}, @@ -6259,7 +6256,7 @@ var tipuesearch = {"pages": [ {"title": "BGRAGradients.TnGradientInfo.StopColor", "text": " ", "tags": "", "url": "BGRAGradients.TnGradientInfo.html#StopColor"}, {"title": "BGRAGradients.TnGradientInfo.Direction", "text": " ", "tags": "", "url": "BGRAGradients.TnGradientInfo.html#Direction"}, {"title": "BGRAGradients.TnGradientInfo.EndPercent", "text": " ", "tags": "", "url": "BGRAGradients.TnGradientInfo.html#EndPercent"}, - {"title": "BGRAGradients.TPhongShading", "text": " Phong shading consist in adding an ambiant light, a diffuse light (angle between light and object), and a specular light (angle between light, object and observer, i.e. reflected light). Height maps are grayscale images or a precise bitmaps filled with MapHeightToBGRA. They are used to determine orientation and position of the surface. ", "tags": "", "url": "BGRAGradients.TPhongShading.html"}, + {"title": "BGRAGradients.TPhongShading", "text": " Phong shading consist in adding an ambiant light, a diffuse light (angle between light and object), and a specular light (angle between light, object and observer, i.e. reflected light). Height maps are grayscale images or a precise bitmaps filled with MapHeightToBGRA. They are used to determine orientation and position of the surface. See tutorial on Phong shading. ", "tags": "", "url": "BGRAGradients.TPhongShading.html"}, {"title": "BGRAGradients.TPhongShading.AmbientFactor", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#AmbientFactor"}, {"title": "BGRAGradients.TPhongShading.DiffuseSaturation", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DiffuseSaturation"}, {"title": "BGRAGradients.TPhongShading.DiffusionFactor", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DiffusionFactor"}, @@ -6279,7 +6276,7 @@ var tipuesearch = {"pages": [ {"title": "BGRAGradients.TPhongShading.DrawHorizontalCylinder", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawHorizontalCylinder-TBGRACustomBitmap-TRect-Single-TBGRAPixel-"}, {"title": "BGRAGradients.TPhongShading.DrawRectangle", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawRectangle-TBGRACustomBitmap-TRect-Integer-Single-TBGRAPixel-Boolean-TRectangleMapOptions-"}, {"title": "BGRAGradients.TPhongShading.DrawScan", "text": " Map altitude indicate the global height of the map. ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawScan-TBGRACustomBitmap-TBGRACustomBitmap-single-integer-integer-IBGRAScanner-"}, - {"title": "BGRAGradients.TPhongShading.DrawSphere", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawSphere-TBGRACustomBitmap-TRect-Single-TBGRAPixel-"}, + {"title": "BGRAGradients.TPhongShading.DrawSphere", "text": " Example drawing a red sphere on a form: procedure TForm1.FormPaint(Sender: TObject); var image: TBGRABitmap; phong: TPhongShading; begin phong := TPhongShading.Create; phong.LightPosition := Point(100, 100); phong.LightPositionZ := 150; phong.SpecularIndex := 20; phong.AmbientFactor := 0.4; phong.LightSourceIntensity := 250; phong.LightSourceDistanceTerm := 200; image := TBGRABitmap.Create(ClientWidth,ClientHeight,ColorToBGRA(ColorToRGB(clBtnFace))); phong.DrawSphere(image,rect(20,20,120,120),50,BGRA(255,0,0)); image.Draw(Canvas,0,0,True); image.free; end; ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawSphere-TBGRACustomBitmap-TRect-Single-TBGRAPixel-"}, {"title": "BGRAGradients.TPhongShading.DrawVerticalCone", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawVerticalCone-TBGRACustomBitmap-TRect-Single-TBGRAPixel-"}, {"title": "BGRAGradients.TPhongShading.DrawVerticalCylinder", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawVerticalCylinder-TBGRACustomBitmap-TRect-Single-TBGRAPixel-"}, {"title": "BGRAGradients.TPhongShading.DrawColorNormal", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawColorNormal-TBGRACustomBitmap-TBGRACustomBitmap-single-integer-integer-TBGRAPixel-"}, @@ -6287,7 +6284,7 @@ var tipuesearch = {"pages": [ {"title": "BGRAGradients.TPhongShading.DrawScannerNormal", "text": " ", "tags": "", "url": "BGRAGradients.TPhongShading.html#DrawScannerNormal-TBGRACustomBitmap-TBGRACustomBitmap-single-integer-integer-IBGRAScanner-"}, {"title": "BGRAGradients.CreateConeMap", "text": " ", "tags": "", "url": "BGRAGradients.html#CreateConeMap-integer-"}, {"title": "BGRAGradients.CreateConePreciseMap", "text": " ", "tags": "", "url": "BGRAGradients.html#CreateConePreciseMap-integer-integer-"}, - {"title": "BGRAGradients.CreateCyclicPerlinNoiseMap", "text": " ", "tags": "", "url": "BGRAGradients.html#CreateCyclicPerlinNoiseMap-integer-integer-Single-Single-Double-TResampleFilter-"}, + {"title": "BGRAGradients.CreateCyclicPerlinNoiseMap", "text": " Example filling a form with Perlin noise: uses BGRABitmap, BGRABitmapTypes, BGRAGradients; procedure TForm1.FormPaint(Sender: TObject); var image,tex: TBGRABitmap; begin image := TBGRABitmap.Create(ClientWidth,ClientHeight); tex := CreateCyclicPerlinNoiseMap(100,100); image.FillRect(0,0,image.Width,image.Height, tex, dmSet); tex.free; image.Draw(Canvas,0,0,True); image.free; end; See also tutorial on creating textures. ", "tags": "", "url": "BGRAGradients.html#CreateCyclicPerlinNoiseMap-integer-integer-Single-Single-Double-TResampleFilter-"}, {"title": "BGRAGradients.CreateHorizontalCylinderPreciseMap", "text": " ", "tags": "", "url": "BGRAGradients.html#CreateHorizontalCylinderPreciseMap-integer-integer-"}, {"title": "BGRAGradients.CreatePerlinNoiseMap", "text": " ", "tags": "", "url": "BGRAGradients.html#CreatePerlinNoiseMap-integer-integer-Single-Single-Double-TResampleFilter-"}, {"title": "BGRAGradients.CreateRectangleMap", "text": " ", "tags": "", "url": "BGRAGradients.html#CreateRectangleMap-integer-integer-integer-TRectangleMapOptions-"},