Class TBGRADefaultBitmap

Unit

Declaration

type TBGRADefaultBitmap = class(TBGRACustomBitmap)

Description

Base implementation for all TBGRABitmap classes.

It implements most function to the exception from implementations specific to the widgetset.

Hierarchy

Overview

Fields

Protected FAlphaCorrectionNeeded: boolean;
Protected FBitmap: TBitmap;
Protected FBitmapModified: boolean;
Protected FCanvas2D: TBGRACanvas2D;
Protected FCanvasBGRA: TBGRACanvas;
Protected FCanvasDrawModeFP: TDrawMode;
Protected FCanvasFP: TFPImageCanvas;
Protected FCanvasOpacity: byte;
Protected FCanvasPixelProcFP: procedure(x, y: int32or64; const col: TBGRAPixel) of object;
Protected FDataModified: boolean;
Protected FFontHeight: integer;
Protected FFontRenderer: TBGRACustomFontRenderer;

Methods

Public constructor Create(AFilename: string); overload; override;
Public constructor Create(AFPImage: TFPCustomImage; ACopyProperties: Boolean=False); overload; override;
Public constructor Create(ABitmap: TBitmap); overload; override;
Public constructor Create(AStream: TStream); overload; override;
Public constructor Create(AFilename: string; AIsUtf8: boolean; AOptions: TBGRALoadingOptions); overload; override;
Public constructor Create(AFilename: string; AIsUtf8: boolean); overload; override;
Public constructor Create(ABitmap: TBitmap; AUseTransparentColor: boolean); overload; override;
Public destructor Destroy; override;
Public function ComputeArc65536(x,y,rx,ry: single; start65536,end65536: word; quality: single = 1): ArrayOfTPointF; override;
Public function ComputeArcRad(x,y,rx,ry: single; startRad,endRad: single; quality: single = 1): ArrayOfTPointF; override;
Public function ComputeBezierCurve(const ACurve: TQuadraticBezierCurve): ArrayOfTPointF; overload; override;
Public function ComputeBezierCurve(const ACurve: TCubicBezierCurve): ArrayOfTPointF; overload; override;
Public function ComputeBezierSpline(const ASpline: array of TQuadraticBezierCurve): ArrayOfTPointF; overload; override;
Public function ComputeBezierSpline(const ASpline: array of TCubicBezierCurve): ArrayOfTPointF; overload; override;
Public function ComputeClosedSpline(const APoints: array of TPointF; AStyle: TSplineStyle): ArrayOfTPointF; override;
Public function ComputeEllipseBorder(x,y,rx,ry,w: single; quality: single = 1): ArrayOfTPointF; overload; override;
Public function ComputeEllipseBorder(AOrigin, AXAxis, AYAxis: TPointF; w: single; quality: single = 1): ArrayOfTPointF; override; overload;
Public function ComputeEllipseContour(x,y,rx,ry: single; quality: single = 1): ArrayOfTPointF; overload; override;
Public function ComputeEllipseContour(AOrigin, AXAxis, AYAxis: TPointF; quality: single = 1): ArrayOfTPointF; overload; override;
Public function ComputeOpenedSpline(const APoints: array of TPointF; AStyle: TSplineStyle): ArrayOfTPointF; override;
Public function ComputePie65536(x,y,rx,ry: single; start65536,end65536: word; quality: single = 1): ArrayOfTPointF; override;
Public function ComputePieRad(x,y,rx,ry: single; startRad,endRad: single; quality: single = 1): ArrayOfTPointF; override;
Public function ComputeRoundRect(x1,y1,x2,y2,rx,ry: single; quality: single = 1): ArrayOfTPointF; overload; override;
Public function ComputeRoundRect(x1,y1,x2,y2,rx,ry: single; options: TRoundRectangleOptions; quality: single = 1): ArrayOfTPointF; overload; override;
Public function ComputeWidePolygon(const points: array of TPointF; w: single): ArrayOfTPointF; overload; override;
Public function ComputeWidePolyline(const points: array of TPointF; w: single; ClosedCap: boolean): ArrayOfTPointF; overload; override;
Public function ComputeWidePolyline(const points: array of TPointF; w: single): ArrayOfTPointF; overload; override;
Public function FilterAffine(AMatrix: TAffineMatrix; correctBlur: boolean = false; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterContour(AGammaCorrection: boolean = false; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterCylinder(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterEmboss(angle: single; ABounds: TRect; AStrength: integer= 64; AOptions: TEmbossOptions = []; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterEmboss(angle: single; AStrength: integer= 64; AOptions: TEmbossOptions = []; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterEmbossHighlight(FillSelection: boolean; BorderColor: TBGRAPixel; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterEmbossHighlight(FillSelection: boolean; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterEmbossHighlight(FillSelection: boolean; BorderColor: TBGRAPixel; var Offset: TPoint; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterGrayscale(ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterGrayscale(ABounds: TRect; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterMedian(Option: TMedianOption; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterNormalize(ABounds: TRect; eachChannel: boolean = True; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterNormalize(eachChannel: boolean = True; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterPixelate(pixelSize: integer; useResample: boolean; filter: TResampleFilter = rfLinear; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterPlane(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterRotate(origin: TPointF; angle: single; correctBlur: boolean = false; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterSharpen(Amount: single = 1; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterSharpen(ABounds: TRect; Amount: single = 1; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterSmartZoom3(Option: TMedianOption; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterSmooth(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterSphere(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function FilterTwirl(ABounds: TRect; ACenter: TPoint; ARadius: Single; ATurn: Single=1; AExponent: Single=3; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function FilterTwirl(ACenter: TPoint; ARadius: Single; ATurn: Single=1; AExponent: Single=3; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;
Public function GetGrayscaleMaskFromAlpha: TGrayscaleMask;
Public function GetImageAffineBounds(AMatrix: TAffineMatrix; ASourceBounds: TRect; AClipOutput: boolean = true; APixelCenteredCoords: boolean = true): TRect; overload; override;
Public function GetMaskFromAlpha: TBGRADefaultBitmap; override;
Public function GetPixel(x, y: single; AResampleFilter: TResampleFilter = rfLinear; smoothBorder: boolean = true): TBGRAPixel; overload; override;
Public function GetPixel256(x, y, fracX256,fracY256: int32or64; AResampleFilter: TResampleFilter = rfLinear; smoothBorder: boolean = true): TBGRAPixel; override;
Public function GetPixelCycle(x, y: single; AResampleFilter: TResampleFilter; repeatX: boolean; repeatY: boolean): TBGRAPixel; overload; override;
Public function GetPixelCycle(x, y: single; AResampleFilter: TResampleFilter = rfLinear): TBGRAPixel; overload; override;
Public function GetPixelCycle256(x, y, fracX256,fracY256: int32or64; AResampleFilter: TResampleFilter; repeatX: boolean; repeatY: boolean): TBGRAPixel; overload; override;
Public function GetPixelCycle256(x, y, fracX256,fracY256: int32or64; AResampleFilter: TResampleFilter = rfLinear): TBGRAPixel; overload; override;
Public function GetPtrBitmap(Top,Bottom: Integer): TBGRACustomBitmap; override;
Public class function IsAffineRoughlyTranslation(AMatrix: TAffineMatrix; ASourceBounds: TRect): boolean; override;
Public function IsScanPutPixelsDefined: boolean; override;
Public function MakeBitmapCopy(BackgroundColor: TColor; AMasked: boolean = False): TBitmap; override;
Public function NewBitmap(AWidth, AHeight: integer): TBGRADefaultBitmap; overload; override;
Public function NewBitmap: TBGRADefaultBitmap; overload; override;
Public function NewBitmap(AWidth, AHeight: integer; AColor: Pointer): TBGRADefaultBitmap; overload; override;
Public function NewBitmap(AWidth, AHeight: integer; const Color: TBGRAPixel): TBGRADefaultBitmap; overload; override;
Public function NewBitmap(Filename: string; AIsUtf8: boolean; AOptions: TBGRALoadingOptions): TBGRADefaultBitmap; overload; override;
Public function NewBitmap(AFPImage: TFPCustomImage): TBGRADefaultBitmap; overload; override;
Public function NewBitmap(Filename: string): TBGRADefaultBitmap; overload; override;
Public function NewBitmap(Filename: string; AIsUtf8: boolean): TBGRADefaultBitmap; overload; override;
Public function Resample(newWidth, newHeight: integer; mode: TResampleMode = rmFineResample; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;
Public function ScanAt(X,Y: Single): TBGRAPixel; override;
Public function ScanAtInteger(X,Y: integer): TBGRAPixel; override;
Public function ScanNextPixel: TBGRAPixel; override;
Public function TextAffineBox(const sUTF8: string): TAffineBox; override;
Public function TextFitInfo(const sUTF8: string; AMaxWidth: integer): integer; override;
Public function TextSize(const sUTF8: string): TSize; override;
Public function TextSize(const sUTF8: string; AMaxWidth: integer; ARightToLeft: boolean): TSize; override;
Public function TextSize(const sUTF8: string; AMaxWidth: integer): TSize; override;
Public function TextSizeMultiline(const sUTF8: string; AMaxWidth: single = EmptySingle; AParagraphSpacing: single = 0): TSize; override;
Protected function CheckEmpty: boolean; override;
Protected function CreateDefaultFontRenderer: TBGRACustomFontRenderer; virtual; abstract;
Protected function CreatePtrBitmap(AWidth,AHeight: integer; AData: PBGRAPixel): TBGRAPtrBitmap; virtual;
Protected function FineResample(NewWidth, NewHeight: integer): TBGRACustomBitmap;
Protected function GetArrowEndOffset: single; override;
Protected function GetArrowEndRepeat: integer; override;
Protected function GetArrowEndSize: TPointF; override;
Protected function GetArrowStartOffset: single; override;
Protected function GetArrowStartRepeat: integer; override;
Protected function GetArrowStartSize: TPointF; override;
Protected function GetAverageColor: TColor; override;
Protected function GetAveragePixel: TBGRAPixel; override;
Protected function GetBitmap: TBitmap; override;
Protected function GetCanvas: TCanvas; override;
Protected function GetCanvasAlphaCorrection: boolean; override;
Protected function GetCanvasDrawModeFP: TDrawMode; override;
Protected function GetCanvasFP: TFPImageCanvas; override;
Protected function GetCanvasOpacity: byte; override;
Protected function GetCustomPenStyle: TBGRAPenStyle; override;
Protected function GetFontAnchorRotatedOffset(ACustomOrientation: integer): TPointF; overload;
Protected function GetFontAnchorRotatedOffset: TPointF; overload;
Protected function GetFontFullHeight: integer; override;
Protected function GetFontHeight: integer; override;
Protected function GetFontPixelMetric: TFontPixelMetric; override;
Protected function GetFontRenderer: TBGRACustomFontRenderer; override;
Protected function GetFontVerticalAnchorOffset: single; override;
Protected function GetHasSemiTransparentPixels: boolean; override;
Protected function GetHasTransparentPixels: boolean; override;
Protected function GetInternalColor(x, y: integer): TFPColor; override;
Protected function GetInternalPixel(x, y: integer): integer; override;
Protected function GetPenJoinStyle: TPenJoinStyle; override;
Protected function GetPenMiterLimit: single; override;
Protected function GetPenStyle: TPenStyle; override;
Protected function InternalGetPixel256(ix,iy: int32or64; iFactX,iFactY: int32or64; smoothBorder: boolean): TBGRAPixel;
Protected function InternalGetPixelCycle256(ix,iy: int32or64; iFactX,iFactY: int32or64): TBGRAPixel;
Protected function InternalNew: TBGRADefaultBitmap; override;
Protected function LoadFromRawImage(ARawImage: TRawImage; DefaultOpacity: byte; AlwaysReplaceAlpha: boolean = False; RaiseErrorOnInvalidPixelFormat: boolean = True): boolean; virtual; abstract;
Protected function SimpleStretch(NewWidth, NewHeight: integer): TBGRACustomBitmap;
Public class procedure AlphaBrush(out ABrush: TUniversalBrush; AAlpha: Word); override;
Public procedure AlphaFill(alpha: byte; start, Count: integer); overload; override;
Public procedure AlphaHorizLine(x, y, x2: int32or64; alpha: byte); override;
Public procedure AlphaPixel(x, y: int32or64; alpha: byte); override;
Public procedure AlphaToGrayscale; override;
Public procedure AlphaVertLine(x, y, y2: int32or64; alpha: byte); override;
Public procedure ArrowEndAsClassic(AFlipped: boolean = false; ACut: boolean = false; ARelativePenWidth: single = 1); override;
Public procedure ArrowEndAsNone; override;
Public procedure ArrowEndAsTail; override;
Public procedure ArrowEndAsTriangle(ABackOffset: single = 0; ARounded: boolean = false; AHollow: boolean = false; AHollowPenWidth: single = 0.5); override;
Public procedure ArrowStartAsClassic(AFlipped: boolean = false; ACut: boolean = false; ARelativePenWidth: single = 1); override;
Public procedure ArrowStartAsNone; override;
Public procedure ArrowStartAsTail; override;
Public procedure ArrowStartAsTriangle(ABackOffset: single = 0; ARounded: boolean = false; AHollow: boolean = false; AHollowPenWidth: single = 0.5); override;
Public procedure Assign(Source: TPersistent); overload; override;
Public procedure Assign(Source: TPersistent; ACopyProperties: Boolean); overload; override;
Public procedure Assign(Source: TBitmap; AUseTransparentColor: boolean); overload;
Public procedure AssignWithFixedTransparent(Source: TBitmap); overload;
Public procedure BlendImage(x, y: integer; ASource: TBGRACustomBitmap; AOperation: TBlendOperation); overload; override;
Public procedure BlendImage(ADest: TRect; ASource: IBGRAScanner; AOffsetX, AOffsetY: integer; AOperation: TBlendOperation); overload; override;
Public procedure BlendImageOver(ADest: TRect; ASource: IBGRAScanner; AOffsetX, AOffsetY: integer; AOperation: TBlendOperation; AOpacity: byte = 255; ALinearBlend: boolean = false); overload; override;
Public procedure BlendImageOver(x, y: integer; ASource: TBGRACustomBitmap; AOperation: TBlendOperation; AOpacity: byte = 255; ALinearBlend: boolean = false); overload; override;
Public procedure BlendRect(ADest: TRect; AColor: TBGRAPixel; AOperation: TBlendOperation; AExcludeChannels: TChannels); overload; override;
Public procedure BlendRectOver(ADest: TRect; AColor: TBGRAPixel; AOperation: TBlendOperation; AOpacity: byte; ALinearBlend: boolean; AExcludeChannels: TChannels); overload; override;
Public procedure ClearTransparentPixels; override;
Public procedure ConvertFromLinearRGB; override;
Public procedure ConvertToLinearRGB; override;
Public procedure CrossFade(ARect: TRect; Source1, Source2: IBGRAScanner; AFadePosition: byte; mode: TDrawMode = dmDrawWithTransparency); overload; override;
Public procedure CrossFade(ARect: TRect; Source1, Source2: IBGRAScanner; AFadeMask: IBGRAScanner; mode: TDrawMode = dmDrawWithTransparency); overload; override;
Public procedure Deserialize(AStream: TStream); override;
Public procedure Draw(ACanvas: TCanvas; x, y: integer; Opaque: boolean = True); overload; override;
Public procedure Draw(ACanvas: TCanvas; Rect: TRect; Opaque: boolean = True); overload; override;
Public procedure DrawHorizLine(x, y, x2: int32or64; ec: TExpandedPixel); override; overload;
Public procedure DrawHorizLineDiff(x, y, x2: int32or64; c, compare: TBGRAPixel; maxDiff: byte); override;
Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeTexture: IBGRAScanner; AWidth: single; AFillColor: TBGRAPixel); overload; override;
Public procedure DrawPath(APath: IBGRAPath; AStrokeColor: TBGRAPixel; AWidth: single; AFillTexture: IBGRAScanner); overload; override;
Public procedure DrawPath(APath: IBGRAPath; AStrokeTexture: IBGRAScanner; AWidth: single; AFillColor: TBGRAPixel); overload; override;
Public procedure DrawPath(APath: IBGRAPath; AStrokeColor: TBGRAPixel; AWidth: single; AFillColor: TBGRAPixel); overload; override;
Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeColor: TBGRAPixel; AWidth: single; AFillColor: TBGRAPixel); overload; override;
Public procedure DrawPath(APath: IBGRAPath; AStrokeTexture: IBGRAScanner; AWidth: single; AFillTexture: IBGRAScanner); overload; override;
Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeTexture: IBGRAScanner; AWidth: single; AFillTexture: IBGRAScanner); overload; override;
Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeColor: TBGRAPixel; AWidth: single; AFillTexture: IBGRAScanner); overload; override;
Public procedure DrawPixel(x, y: int32or64; const c: TBGRAPixel); overload; override;
Public procedure DrawPixels(c: TBGRAPixel; start, Count: integer); override;
Public procedure DrawPolygonAntialias(const points: array of TPointF; c: TBGRAPixel; w: single; fillcolor: TBGRAPixel); overload; override;
Public procedure DrawPolyLineAntialias(const points: array of TPointF; c: TBGRAPixel; w: single; fillcolor: TBGRAPixel); overload; override;
Public procedure DrawVertLine(x, y, y2: int32or64; c: TBGRAPixel); override;
Public procedure EllipseAntialias(x, y, rx, ry: single; c: TBGRAPixel; w: single; back: TBGRAPixel); overload; override;
Public procedure EllipseAntialias(AOrigin, AXAxis, AYAxis: TPointF; c: TBGRAPixel; w: single; back: TBGRAPixel); overload; override;
Public class procedure EraseBrush(out ABrush: TUniversalBrush; AAlpha: Word); override;
Public procedure EraseMask(x,y: integer; AMask: TBGRACustomBitmap; alpha: byte=255); override;
Public procedure ErasePixel(x, y: int32or64; alpha: byte); override;
Public procedure FastBlendHorizLine(x, y, x2: int32or64; c: TBGRAPixel); override;
Public procedure FastBlendPixel(x, y: int32or64; const c: TBGRAPixel); override;
Public procedure FastBlendVertLine(x, y, y2: int32or64; c: TBGRAPixel); override;
Public procedure Fill(c: TBGRAPixel; start, Count: integer); overload; override;
Public procedure FillClearTypeMask(x,y: integer; xThird: integer; AMask: TBGRACustomBitmap; texture: IBGRAScanner; ARGBOrder: boolean = true); override;
Public procedure FillClearTypeMask(x,y: integer; xThird: integer; AMask: TBGRACustomBitmap; color: TBGRAPixel; ARGBOrder: boolean = true); override;
Public procedure FillEllipseLinearColorAntialias(AOrigin, AXAxis, AYAxis: TPointF; outercolor, innercolor: TBGRAPixel); overload; override;
Public procedure FillEllipseLinearColorAntialias(x, y, rx, ry: single; outercolor, innercolor: TBGRAPixel); overload; override;
Public procedure FillMask(x,y: integer; AMask: TCustomUniversalBitmap; ATexture: IBGRAScanner; ADrawMode: TDrawMode; AOpacity: byte); overload; override;
Public procedure FillMask(x,y: integer; AMask: TCustomUniversalBitmap; const AColor: TBGRAPixel; ADrawMode: TDrawMode); overload; override;
Public procedure FillPolyLinearColor(const points: array of TPointF; AColors: array of TBGRAPixel); override;
Public procedure FillPolyLinearMapping(const points: array of TPointF; texture: IBGRAScanner; texCoords: array of TPointF; TextureInterpolation: Boolean); override;
Public procedure FillPolyLinearMappingLightness(const points: array of TPointF; texture: IBGRAScanner; texCoords: array of TPointF; lightnesses: array of word; TextureInterpolation: Boolean); override;
Public procedure FillPolyPerspectiveMapping(const points: array of TPointF; const pointsZ: array of single; texture: IBGRAScanner; texCoords: array of TPointF; TextureInterpolation: Boolean; zbuffer: psingle = nil); override;
Public procedure FillPolyPerspectiveMappingLightness(const points: array of TPointF; const pointsZ: array of single; texture: IBGRAScanner; texCoords: array of TPointF; lightnesses: array of word; TextureInterpolation: Boolean; zbuffer: psingle = nil); override;
Public procedure FillQuadAffineMapping(Orig,HAxis,VAxis: TPointF; AImage: TBGRACustomBitmap; APixelCenteredCoordinates: boolean = true; ADrawMode: TDrawMode = dmDrawWithTransparency; AOpacity: byte = 255); override;
Public procedure FillQuadAffineMappingAntialias(Orig,HAxis,VAxis: TPointF; AImage: TBGRACustomBitmap; APixelCenteredCoordinates: boolean = true; AOpacity: byte = 255); override;
Public procedure FillQuadLinearColor(pt1,pt2,pt3,pt4: TPointF; c1,c2,c3,c4: TBGRAPixel); override;
Public procedure FillQuadLinearColorAntialias(pt1,pt2,pt3,pt4: TPointF; c1,c2,c3,c4: TBGRAPixel); override;
Public procedure FillQuadLinearMapping(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; TextureInterpolation: Boolean= True; ACulling: TFaceCulling = fcNone; ACropToPolygon: boolean = true); override;
Public procedure FillQuadLinearMappingAntialias(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ACulling: TFaceCulling = fcNone); override;
Public procedure FillQuadLinearMappingLightness(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; light1,light2,light3,light4: word; TextureInterpolation: Boolean= True); override;
Public procedure FillQuadPerspectiveMapping(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ACleanBorders: TRect; ADrawMode: TDrawMode = dmDrawWithTransparency); override;
Public procedure FillQuadPerspectiveMapping(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ADrawMode: TDrawMode = dmDrawWithTransparency); override;
Public procedure FillQuadPerspectiveMappingAntialias(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF); override;
Public procedure FillQuadPerspectiveMappingAntialias(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ACleanBorders: TRect); override;
Public procedure FillRect(x, y, x2, y2: integer; texture: IBGRAScanner; mode: TDrawMode; AScanOffset: TPoint; ditheringAlgorithm: TDitheringAlgorithm); overload; override;
Public procedure FillTriangleLinearColor(pt1,pt2,pt3: TPointF; c1,c2,c3: TBGRAPixel); override;
Public procedure FillTriangleLinearColorAntialias(pt1,pt2,pt3: TPointF; c1,c2,c3: TBGRAPixel); override;
Public procedure FillTriangleLinearMapping(pt1,pt2,pt3: TPointF; texture: IBGRAScanner; tex1, tex2, tex3: TPointF; TextureInterpolation: Boolean= True); override;
Public procedure FillTriangleLinearMappingAntialias(pt1,pt2,pt3: TPointF; texture: IBGRAScanner; tex1, tex2, tex3: TPointF); override;
Public procedure FillTriangleLinearMappingLightness(pt1,pt2,pt3: TPointF; texture: IBGRAScanner; tex1, tex2, tex3: TPointF; light1,light2,light3: word; TextureInterpolation: Boolean= True); override;
Public procedure GradientFill(x, y, x2, y2: integer; gradient: TBGRACustomGradient; gtype: TGradientType; o1, o2: TPointF; mode: TDrawMode; Sinus: Boolean=False; ditherAlgo: TDitheringAlgorithm = daNearestNeighbor); override;
Public procedure GradientFill(x, y, x2, y2: integer; c1, c2: TBGRAPixel; gtype: TGradientType; o1, o2: TPointF; mode: TDrawMode; gammaColorCorrection: boolean = True; Sinus: Boolean=False; ditherAlgo: TDitheringAlgorithm = daNearestNeighbor); override;
Public procedure GrayscaleToAlpha; override;
Public procedure HorizLineDiff(x, y, x2: int32or64; const ABrush: TUniversalBrush; ACompare: TBGRAPixel; AMaxDiffW: word); override;
Public procedure InplaceGrayscale(ABounds: TRect; AGammaCorrection: boolean = true); overload; override;
Public procedure InplaceGrayscale(AGammaCorrection: boolean = true); overload; override;
Public procedure InplaceNormalize(ABounds: TRect; AEachChannel: boolean = True); overload; override;
Public procedure InplaceNormalize(AEachChannel: boolean = True); overload; override;
Public procedure InvalidateBitmap; override;
Public procedure LinearNegative; override;
Public procedure LinearNegativeRect(ABounds: TRect); override;
Public procedure LoadFromBitmapIfNeeded; override;
Public class procedure MaskBrush(out ABrush: TUniversalBrush; AScanner: IBGRAScanner; AOffsetX: integer = 0; AOffsetY: integer = 0); override;
Public procedure Negative; override;
Public procedure NegativeRect(ABounds: TRect); override;
Public procedure NotifyBitmapChange; inline;
Public procedure ParallelFloodFill(X, Y: integer; Dest: TCustomUniversalBitmap; Color: TBGRAPixel; mode: TFloodfillMode; Tolerance: byte = 0; DestOfsX: integer = 0; DestOfsY: integer = 0); overload; override;
Public procedure ParallelFloodFill(X, Y: integer; Dest: TCustomUniversalBitmap; const Brush: TUniversalBrush; Progressive: boolean; ToleranceW: Word = $00ff; DestOfsX: integer = 0; DestOfsY: integer = 0); overload; override;
Public procedure PutImage(X, Y: integer; ASource: TCustomUniversalBitmap; AMode: TDrawMode; AOpacity: byte); overload; override;
Public procedure PutImageAffine(AMatrix: TAffineMatrix; Source: TBGRACustomBitmap; AOutputBounds: TRect; AResampleFilter: TResampleFilter; AMode: TDrawMode; AOpacity: Byte=255; APixelCenteredCoords: boolean = true); overload; override;
Public procedure RectangleAntialias(x, y, x2, y2: single; c: TBGRAPixel; w: single; back: TBGRAPixel); overload; override;
Public procedure ReplaceColor(ABounds: TRect; before, after: TColor); overload; override;
Public procedure ReplaceColor(before, after: TColor); overload; override;
Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; pencolor: TBGRAPixel; w: single; fillcolor: TBGRAPixel; options: TRoundRectangleOptions = []); overload; override;
Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; penTexture: IBGRAScanner; w: single; fillTexture: IBGRAScanner; options: TRoundRectangleOptions = []); overload; override;
Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; c: TBGRAPixel; w: single; options: TRoundRectangleOptions = []); overload; override;
Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; texture: IBGRAScanner; w: single; options: TRoundRectangleOptions = []); overload; override;
Public class procedure ScannerBrush(out ABrush: TUniversalBrush; AScanner: IBGRAScanner; ADrawMode: TDrawMode = dmDrawWithTransparency; AOffsetX: integer = 0; AOffsetY: integer = 0); override;
Public procedure ScanPutPixels(pdest: PBGRAPixel; count: integer; mode: TDrawMode); override;
Public procedure Serialize(AStream: TStream); override;
Public procedure SetPixel(x, y: int32or64; c: TColor); overload; override;
Public procedure SetSize(AWidth, AHeight: integer); override;
Public class procedure SolidBrush(out ABrush: TUniversalBrush; const AColor: TBGRAPixel; ADrawMode: TDrawMode = dmDrawWithTransparency); override;
Public procedure SolidBrushIndirect(out ABrush: TUniversalBrush; AColor: Pointer; ADrawMode: TDrawMode = dmDrawWithTransparency); override;
Public procedure StretchPutImage(ARect: TRect; Source: TBGRACustomBitmap; mode: TDrawMode; AOpacity: byte = 255); override;
Public procedure SwapRedBlue; override;
Public procedure SwapRedBlue(ARect: TRect); override;
Public procedure TextMultiline(ALeft,ATop,AWidth: single; const sUTF8: string; ATexture: IBGRAScanner; AAlign: TBidiTextAlignment = btaNatural; AVertAlign: TTextLayout = tlTop; AParagraphSpacing: single = 0); overload; override;
Public procedure TextMultiline(ALeft,ATop,AWidth: single; const sUTF8: string; c: TBGRAPixel; AAlign: TBidiTextAlignment = btaNatural; AVertAlign: TTextLayout = tlTop; AParagraphSpacing: single = 0); overload; override;
Public procedure TextOut(x, y: single; const sUTF8: string; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single); overload; override;
Public procedure TextOut(x, y: single; const sUTF8: string; c: TBGRAPixel; align: TAlignment; ARightToLeft: boolean); overload; override;
Public procedure TextOut(x, y: single; const sUTF8: string; texture: IBGRAScanner; align: TAlignment; ARightToLeft: boolean); overload; override;
Public procedure TextOut(x, y: single; const sUTF8: string; AColor: TBGRAPixel; AAlign: TAlignment; ALetterSpacing: single); overload; override;
Public procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; const sUTF8: string; texture: IBGRAScanner; align: TAlignment; ARightToLeft: boolean); overload; override;
Public procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; const sUTF8: string; c: TBGRAPixel; align: TAlignment; ARightToLeft: boolean); overload; override;
Public procedure TextOutCurved(ACursor: TBGRACustomPathCursor; const sUTF8: string; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single); overload; override;
Public procedure TextOutCurved(ACursor: TBGRACustomPathCursor; const sUTF8: string; AColor: TBGRAPixel; AAlign: TAlignment; ALetterSpacing: single); overload; override;
Public procedure TextRect(ARect: TRect; x, y: integer; const sUTF8: string; style: TTextStyle; c: TBGRAPixel); overload; override;
Public procedure TextRect(ARect: TRect; x, y: integer; const sUTF8: string; style: TTextStyle; texture: IBGRAScanner); overload; override;
Public procedure XorHorizLine(x, y, x2: int32or64; c: TBGRAPixel); override;
Public procedure XorPixel(x, y: int32or64; const c: TBGRAPixel); override;
Public procedure XorVertLine(x, y, y2: int32or64; c: TBGRAPixel); override;
Protected procedure DiscardBitmapChange; inline;
Protected procedure DoAlphaCorrection;
Protected procedure DoLoadFromBitmap; virtual;
Protected procedure FreeBitmap; virtual;
Protected procedure Init; override;
Protected procedure InternalArc(cx,cy,rx,ry: single; StartAngleRad,EndAngleRad: Single; ABorderColor: TBGRAPixel; w: single; AFillColor: TBGRAPixel; AOptions: TArcOptions; ADrawChord: boolean = false; ATexture: IBGRAScanner = nil); override;
Protected procedure InternalCrossFade(ARect: TRect; Source1, Source2: IBGRAScanner; AFadePos: byte; AFadeMask: IBGRAScanner; mode: TDrawMode = dmDrawWithTransparency);
Protected procedure InternalTextOutCurved(ACursor: TBGRACustomPathCursor; sUTF8: string; AColor: TBGRAPixel; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single);
Protected procedure InternalTextOutLetterSpacing(x,y: single; sUTF8: string; AColor: TBGRAPixel; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single);
Protected procedure InternalTextOutOffset(x, y: single; const sUTF8: string; AColor: TBGRAPixel; ATexture: IBGRAScanner; AOffsets: array of TPointF); override;
Protected procedure RebuildBitmap; virtual; abstract;
Protected procedure SetArrowEndOffset(AValue: single); override;
Protected procedure SetArrowEndRepeat(AValue: integer); override;
Protected procedure SetArrowEndSize(AValue: TPointF); override;
Protected procedure SetArrowStartOffset(AValue: single); override;
Protected procedure SetArrowStartRepeat(AValue: integer); override;
Protected procedure SetArrowStartSize(AValue: TPointF); override;
Protected procedure SetCanvasAlphaCorrection(const AValue: boolean); override;
Protected procedure SetCanvasDrawModeFP(const AValue: TDrawMode); override;
Protected procedure SetCanvasOpacity(AValue: byte); override;
Protected procedure SetCustomPenStyle(const AValue: TBGRAPenStyle); override;
Protected procedure SetFontFullHeight(AHeight: integer); override;
Protected procedure SetFontHeight(AHeight: integer); override;
Protected procedure SetFontRenderer(AValue: TBGRACustomFontRenderer); override;
Protected procedure SetInternalColor(x, y: integer; const Value: TFPColor); override;
Protected procedure SetInternalPixel(x, y: integer; Value: integer); override;
Protected procedure SetPenJoinStyle(const AValue: TPenJoinStyle); override;
Protected procedure SetPenMiterLimit(const AValue: single); override;
Protected procedure SetPenStyle(const AValue: TPenStyle); override;

Properties

Public property Canvas2D: TBGRACanvas2D read GetCanvas2D;
Public property CanvasBGRA: TBGRACanvas read GetCanvasBGRA;

Description

Fields

Protected FAlphaCorrectionNeeded: boolean;

opacity used with standard canvas functions

Protected FBitmap: TBitmap;

if data image has changed so TBitmap should be updated GUI bitmap object

Protected FBitmapModified: boolean;

This item has no description.

Protected FCanvas2D: TBGRACanvas2D;

This item has no description.

Protected FCanvasBGRA: TBGRACanvas;

canvas-like with antialiasing and texturing

Protected FCanvasDrawModeFP: TDrawMode;

This item has no description.

Protected FCanvasFP: TFPImageCanvas;

the alpha channel is not correct because standard functions do not take it into account FreePascal drawing routines

Protected FCanvasOpacity: byte;

if TBitmap has changed so pixel data should be updated

Protected FCanvasPixelProcFP: procedure(x, y: int32or64; const col: TBGRAPixel) of object;

This item has no description.

Protected FDataModified: boolean;

Pixel data

Protected FFontHeight: integer;

drawing options

Protected FFontRenderer: TBGRACustomFontRenderer;

This item has no description.

Methods

Public constructor Create(AFilename: string); overload; override;

Creates an image by loading its content from the file ''AFilename''. The encoding of the string is the default one for the operating system. It is recommended to use the next constructor and UTF8 encoding

Public constructor Create(AFPImage: TFPCustomImage; ACopyProperties: Boolean=False); overload; override;

Creates an image by copying the content of a ''TFPCustomImage''

Public constructor Create(ABitmap: TBitmap); overload; override;

Creates an image by copying the content of a ''TBitmap'', apply transparent color if specified and bitmap is masked

Public constructor Create(AStream: TStream); overload; override;

Creates an image by loading its content from the stream ''AStream''

Public constructor Create(AFilename: string; AIsUtf8: boolean; AOptions: TBGRALoadingOptions); overload; override;

This item has no description.

Public constructor Create(AFilename: string; AIsUtf8: boolean); overload; override;

Creates an image by loading its content from the file ''AFilename''. The boolean ''AIsUtf8Filename'' specifies if UTF8 encoding is assumed for the filename

Public constructor Create(ABitmap: TBitmap; AUseTransparentColor: boolean); overload; override;

Creates an image by copying the content of a ''TBitmap'', enforce/disable use of transparent color

Public destructor Destroy; override;

Free the object and all its resources

Public function ComputeArc65536(x,y,rx,ry: single; start65536,end65536: word; quality: single = 1): ArrayOfTPointF; override;

This item has no description.

Public function ComputeArcRad(x,y,rx,ry: single; startRad,endRad: single; quality: single = 1): ArrayOfTPointF; override;

This item has no description.

Public function ComputeBezierCurve(const ACurve: TQuadraticBezierCurve): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeBezierCurve(const ACurve: TCubicBezierCurve): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeBezierSpline(const ASpline: array of TQuadraticBezierCurve): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeBezierSpline(const ASpline: array of TCubicBezierCurve): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeClosedSpline(const APoints: array of TPointF; AStyle: TSplineStyle): ArrayOfTPointF; override;

Spline

Public function ComputeEllipseBorder(x,y,rx,ry,w: single; quality: single = 1): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeEllipseBorder(AOrigin, AXAxis, AYAxis: TPointF; w: single; quality: single = 1): ArrayOfTPointF; override; overload;

This item has no description.

Public function ComputeEllipseContour(x,y,rx,ry: single; quality: single = 1): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeEllipseContour(AOrigin, AXAxis, AYAxis: TPointF; quality: single = 1): ArrayOfTPointF; overload; override;

This item has no description.

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

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;

Public function ComputePie65536(x,y,rx,ry: single; start65536,end65536: word; quality: single = 1): ArrayOfTPointF; override;

This item has no description.

Public function ComputePieRad(x,y,rx,ry: single; startRad,endRad: single; quality: single = 1): ArrayOfTPointF; override;

This item has no description.

Public function ComputeRoundRect(x1,y1,x2,y2,rx,ry: single; quality: single = 1): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeRoundRect(x1,y1,x2,y2,rx,ry: single; options: TRoundRectangleOptions; quality: single = 1): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeWidePolygon(const points: array of TPointF; w: single): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeWidePolyline(const points: array of TPointF; w: single; ClosedCap: boolean): ArrayOfTPointF; overload; override;

This item has no description.

Public function ComputeWidePolyline(const points: array of TPointF; w: single): ArrayOfTPointF; overload; override;

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

can be accessed via Pen property

Public function FilterAffine(AMatrix: TAffineMatrix; correctBlur: boolean = false; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterContour(AGammaCorrection: boolean = false; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterCylinder(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterEmboss(angle: single; ABounds: TRect; AStrength: integer= 64; AOptions: TEmbossOptions = []; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterEmboss(angle: single; AStrength: integer= 64; AOptions: TEmbossOptions = []; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterEmbossHighlight(FillSelection: boolean; BorderColor: TBGRAPixel; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterEmbossHighlight(FillSelection: boolean; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterEmbossHighlight(FillSelection: boolean; BorderColor: TBGRAPixel; var Offset: TPoint; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterGrayscale(ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterGrayscale(ABounds: TRect; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterMedian(Option: TMedianOption; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterNormalize(ABounds: TRect; eachChannel: boolean = True; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterNormalize(eachChannel: boolean = True; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterPixelate(pixelSize: integer; useResample: boolean; filter: TResampleFilter = rfLinear; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterPlane(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterRotate(origin: TPointF; angle: single; correctBlur: boolean = false; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterSharpen(Amount: single = 1; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterSharpen(ABounds: TRect; Amount: single = 1; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterSmartZoom3(Option: TMedianOption; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

Filters

Public function FilterSmooth(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterSphere(ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function FilterTwirl(ABounds: TRect; ACenter: TPoint; ARadius: Single; ATurn: Single=1; AExponent: Single=3; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function FilterTwirl(ACenter: TPoint; ARadius: Single; ATurn: Single=1; AExponent: Single=3; ACopyProperties: Boolean=False): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function GetGrayscaleMaskFromAlpha: TGrayscaleMask;

This item has no description.

Public function GetImageAffineBounds(AMatrix: TAffineMatrix; ASourceBounds: TRect; AClipOutput: boolean = true; APixelCenteredCoords: boolean = true): TRect; overload; override;

This item has no description.

Public function GetMaskFromAlpha: TBGRADefaultBitmap; override;

This item has no description.

Public function GetPixel(x, y: single; AResampleFilter: TResampleFilter = rfLinear; smoothBorder: boolean = true): TBGRAPixel; overload; override;

Computes the value of the pixel at a floating point coordiante by interpolating the values of the pixels around it.

  • There is a one pixel wide margin around the pixel where the pixels are still considered inside. If ''smoothBorder'' is set to true, pixel fade to transparent.

  • If it is more out of the bounds, the result is ''BGRAPixelTransparent''.

  • ''AResampleFilter'' specifies how pixels must be interpolated. Accepted values are ''rfBox'', ''rfLinear'', ''rfHalfCosine'' and ''rfCosine''

Public function GetPixel256(x, y, fracX256,fracY256: int32or64; AResampleFilter: TResampleFilter = rfLinear; smoothBorder: boolean = true): TBGRAPixel; override;

Similar to previous ''GetPixel'' function, but the fractional part of the coordinate is supplied with a number from 0 to 255. The actual coordinate is (''x'' + ''fracX256''/256, ''y'' + ''fracY256''/256)

Public function GetPixelCycle(x, y: single; AResampleFilter: TResampleFilter; repeatX: boolean; repeatY: boolean): TBGRAPixel; overload; override;

Computes the value of the pixel at a floating point coordiante by interpolating the values of the pixels around it. ''repeatX'' and ''repeatY'' specifies if the image is to be repeated or not.

Public function GetPixelCycle(x, y: single; AResampleFilter: TResampleFilter = rfLinear): TBGRAPixel; overload; override;

Computes the value of the pixel at a floating point coordiante by interpolating the values of the pixels around it. If the pixel is out of bounds, the image is repeated.

Public function GetPixelCycle256(x, y, fracX256,fracY256: int32or64; AResampleFilter: TResampleFilter; repeatX: boolean; repeatY: boolean): TBGRAPixel; overload; override;

Similar to previous ''GetPixel'' function, but the fractional part of the coordinate is supplied with a number from 0 to 255. The actual coordinate is (''x'' + ''fracX256''/256, ''y'' + ''fracY256''/256)

Public function GetPixelCycle256(x, y, fracX256,fracY256: int32or64; AResampleFilter: TResampleFilter = rfLinear): TBGRAPixel; overload; override;

Similar to previous ''GetPixel'' function, but the fractional part of the coordinate is supplied with a number from 0 to 255. The actual coordinate is (''x'' + ''fracX256''/256, ''y'' + ''fracY256''/256)

Public function GetPtrBitmap(Top,Bottom: Integer): TBGRACustomBitmap; override;

This item has no description.

Public class function IsAffineRoughlyTranslation(AMatrix: TAffineMatrix; ASourceBounds: TRect): boolean; override;

This item has no description.

Public function IsScanPutPixelsDefined: boolean; override;

This item has no description. Showing descriptions inherited from ancestors.

From IBGRAScanner.IsScanPutPixelsDefined:

Returns True if the function ScanPutPixels is available. Otherwise you need to call ScanNextPixel and combine pixels for example with SetPixel

From IBGRAScanner.IsScanPutPixelsDefined:

Returns True if the function ScanPutPixels is available. Otherwise you need to call ScanNextPixel and combine pixels for example with SetPixel

Public function MakeBitmapCopy(BackgroundColor: TColor; AMasked: boolean = False): TBitmap; override;

This item has no description.

Public function NewBitmap(AWidth, AHeight: integer): TBGRADefaultBitmap; overload; override;

Can only be called from an existing instance of ''TBGRABitmap''. Creates a new instance with dimensions ''AWidth'' and ''AHeight'', containing transparent pixels.

Public function NewBitmap: TBGRADefaultBitmap; overload; override;

Can only be called from an existing instance of ''TBGRABitmap''. Creates a new instance with dimensions 0 x 0.

Public function NewBitmap(AWidth, AHeight: integer; AColor: Pointer): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function NewBitmap(AWidth, AHeight: integer; const Color: TBGRAPixel): TBGRADefaultBitmap; overload; override;

Can only be called from an existing instance of ''TBGRABitmap''. Creates a new instance with dimensions ''AWidth'' and ''AHeight'', and fills it with Color

Public function NewBitmap(Filename: string; AIsUtf8: boolean; AOptions: TBGRALoadingOptions): TBGRADefaultBitmap; overload; override;

This item has no description.

Public function NewBitmap(AFPImage: TFPCustomImage): TBGRADefaultBitmap; overload; override;

Can only be called from an existing instance of ''TBGRABitmap''. Creates an image by copying the content of a ''TFPCustomImage''

Public function NewBitmap(Filename: string): TBGRADefaultBitmap; overload; override;

Can only be called from an existing instance of ''TBGRABitmap''. Creates a new instance with by loading its content from the file ''Filename''. The encoding of the string is the default one for the operating system

Public function NewBitmap(Filename: string; AIsUtf8: boolean): TBGRADefaultBitmap; overload; override;

Can only be called from an existing instance of ''TBGRABitmap''. Creates a new instance with by loading its content from the file ''Filename''

Public function Resample(newWidth, newHeight: integer; mode: TResampleMode = rmFineResample; ACopyProperties: Boolean=False): TBGRADefaultBitmap; override;

This item has no description.

Public function ScanAt(X,Y: Single): TBGRAPixel; override;

This item has no description. Showing descriptions inherited from ancestors.

From IBGRAScanner.ScanAt:

Scan at any location using floating point coordinates

From IBGRAScanner.ScanAt:

Scan at any location using floating point coordinates

Public function ScanAtInteger(X,Y: integer): TBGRAPixel; override;

This item has no description. Showing descriptions inherited from ancestors.

From IBGRAScanner.ScanAtInteger:

Scan at any location using integer coordinates

From IBGRAScanner.ScanAtInteger:

Scan at any location using integer coordinates

Public function ScanNextPixel: TBGRAPixel; override;

This item has no description. Showing descriptions inherited from ancestors.

From IBGRAScanner.ScanNextPixel:

Scan the pixel at the current location and increments X

From IBGRAScanner.ScanNextPixel:

Scan the pixel at the current location and increments X

Public function TextAffineBox(const sUTF8: string): TAffineBox; override;

Returns the affine box of the string provided using the current font. Orientation is taken into account. End of lines are stripped from the string.

Public function TextFitInfo(const sUTF8: string; AMaxWidth: integer): integer; override;

This item has no description.

Public function TextSize(const sUTF8: string): TSize; override;

Returns the total size of the string provided using the current font. Orientation is not taken into account, so that the width is along the text. End of lines are stripped from the string.

Public function TextSize(const sUTF8: string; AMaxWidth: integer; ARightToLeft: boolean): TSize; override;

This item has no description.

Public function TextSize(const sUTF8: string; AMaxWidth: integer): TSize; override;

Returns the total size of a paragraph i.e. with word break

Public function TextSizeMultiline(const sUTF8: string; AMaxWidth: single = EmptySingle; AParagraphSpacing: single = 0): TSize; override;

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

Returns the total size of the string provided using the current font and taking into account line breaks.

Protected function CheckEmpty: boolean; override;

This item has no description.

Protected function CreateDefaultFontRenderer: TBGRACustomFontRenderer; virtual; abstract;

This item has no description.

Protected function CreatePtrBitmap(AWidth,AHeight: integer; AData: PBGRAPixel): TBGRAPtrBitmap; virtual;

This item has no description.

Protected function FineResample(NewWidth, NewHeight: integer): TBGRACustomBitmap;

Image functions

Protected function GetArrowEndOffset: single; override;

This item has no description.

Protected function GetArrowEndRepeat: integer; override;

This item has no description.

Protected function GetArrowEndSize: TPointF; override;

This item has no description.

Protected function GetArrowStartOffset: single; override;

This item has no description.

Protected function GetArrowStartRepeat: integer; override;

This item has no description.

Protected function GetArrowStartSize: TPointF; override;

This item has no description.

Protected function GetAverageColor: TColor; override;

This item has no description.

Protected function GetAveragePixel: TBGRAPixel; override;

This item has no description.

Protected function GetBitmap: TBitmap; override;

GUI bitmap object

Protected function GetCanvas: TCanvas; override;

This item has no description.

Protected function GetCanvasAlphaCorrection: boolean; override;

This item has no description.

Protected function GetCanvasDrawModeFP: TDrawMode; override;

This item has no description.

Protected function GetCanvasFP: TFPImageCanvas; override;

FreePascal drawing routines

Protected function GetCanvasOpacity: byte; override;

This item has no description.

Protected function GetCustomPenStyle: TBGRAPenStyle; override;

This item has no description.

Protected function GetFontAnchorRotatedOffset(ACustomOrientation: integer): TPointF; overload;

This item has no description.

Protected function GetFontAnchorRotatedOffset: TPointF; overload;

This item has no description.

Protected function GetFontFullHeight: integer; override;

This item has no description.

Protected function GetFontHeight: integer; override;

font accessors

Protected function GetFontPixelMetric: TFontPixelMetric; override;

This item has no description.

Protected function GetFontRenderer: TBGRACustomFontRenderer; override;

This item has no description.

Protected function GetFontVerticalAnchorOffset: single; override;

This item has no description.

Protected function GetHasSemiTransparentPixels: boolean; override;

This item has no description.

Protected function GetHasTransparentPixels: boolean; override;

This item has no description.

Protected function GetInternalColor(x, y: integer): TFPColor; override;

This item has no description.

Protected function GetInternalPixel(x, y: integer): integer; override;

This item has no description.

Protected function GetPenJoinStyle: TPenJoinStyle; override;

pen style accesors

Protected function GetPenMiterLimit: single; override;

This item has no description.

Protected function GetPenStyle: TPenStyle; override;

This item has no description.

Protected function InternalGetPixel256(ix,iy: int32or64; iFactX,iFactY: int32or64; smoothBorder: boolean): TBGRAPixel;

This item has no description.

Protected function InternalGetPixelCycle256(ix,iy: int32or64; iFactX,iFactY: int32or64): TBGRAPixel;

This item has no description.

Protected function InternalNew: TBGRADefaultBitmap; override;

This item has no description.

Protected function LoadFromRawImage(ARawImage: TRawImage; DefaultOpacity: byte; AlwaysReplaceAlpha: boolean = False; RaiseErrorOnInvalidPixelFormat: boolean = True): boolean; virtual; abstract;

Pixel data

Protected function SimpleStretch(NewWidth, NewHeight: integer): TBGRACustomBitmap;

This item has no description.

Public class procedure AlphaBrush(out ABrush: TUniversalBrush; AAlpha: Word); override;

This item has no description.

Public procedure AlphaFill(alpha: byte; start, Count: integer); overload; override;

This item has no description.

Public procedure AlphaHorizLine(x, y, x2: int32or64; alpha: byte); override;

Replaces the alpha value of the pixels at line ''y'' and at columns ''x'' to ''x2'' included

Public procedure AlphaPixel(x, y: int32or64; alpha: byte); override;

Sets the alpha value at (''x'',''y''). If ''alpha'' = 0, the pixel is replaced by ''BGRAPixelTransparent''

Public procedure AlphaToGrayscale; override;

This item has no description.

Public procedure AlphaVertLine(x, y, y2: int32or64; alpha: byte); override;

Replace alpha values in a vertical line at column ''x'' and at row ''y'' to ''y2''

Public procedure ArrowEndAsClassic(AFlipped: boolean = false; ACut: boolean = false; ARelativePenWidth: single = 1); override;

This item has no description.

Public procedure ArrowEndAsNone; override;

This item has no description.

Public procedure ArrowEndAsTail; override;

This item has no description.

Public procedure ArrowEndAsTriangle(ABackOffset: single = 0; ARounded: boolean = false; AHollow: boolean = false; AHollowPenWidth: single = 0.5); override;

This item has no description.

Public procedure ArrowStartAsClassic(AFlipped: boolean = false; ACut: boolean = false; ARelativePenWidth: single = 1); override;

This item has no description.

Public procedure ArrowStartAsNone; override;

This item has no description.

Public procedure ArrowStartAsTail; override;

This item has no description.

Public procedure ArrowStartAsTriangle(ABackOffset: single = 0; ARounded: boolean = false; AHollow: boolean = false; AHollowPenWidth: single = 0.5); override;

This item has no description.

Public procedure Assign(Source: TPersistent); overload; override;

Assign the content of the specified ''Source''. It can be a ''TBGRACustomBitmap'' or a ''TFPCustomImage''

Public procedure Assign(Source: TPersistent; ACopyProperties: Boolean); overload; override;

This item has no description.

Public procedure Assign(Source: TBitmap; AUseTransparentColor: boolean); overload;

This item has no description.

Public procedure AssignWithFixedTransparent(Source: TBitmap); overload;

This item has no description.

Public procedure BlendImage(x, y: integer; ASource: TBGRACustomBitmap; AOperation: TBlendOperation); overload; override;

This item has no description.

Public procedure BlendImage(ADest: TRect; ASource: IBGRAScanner; AOffsetX, AOffsetY: integer; AOperation: TBlendOperation); overload; override;

This item has no description.

Public procedure BlendImageOver(ADest: TRect; ASource: IBGRAScanner; AOffsetX, AOffsetY: integer; AOperation: TBlendOperation; AOpacity: byte = 255; ALinearBlend: boolean = false); overload; override;

This item has no description.

Public procedure BlendImageOver(x, y: integer; ASource: TBGRACustomBitmap; AOperation: TBlendOperation; AOpacity: byte = 255; ALinearBlend: boolean = false); overload; override;

This item has no description.

Public procedure BlendRect(ADest: TRect; AColor: TBGRAPixel; AOperation: TBlendOperation; AExcludeChannels: TChannels); overload; override;

This item has no description.

Public procedure BlendRectOver(ADest: TRect; AColor: TBGRAPixel; AOperation: TBlendOperation; AOpacity: byte; ALinearBlend: boolean; AExcludeChannels: TChannels); overload; override;

This item has no description.

Public procedure ClearTransparentPixels; override;

Clear all channels of transparent pixels

Public procedure ConvertFromLinearRGB; override;

This item has no description.

Public procedure ConvertToLinearRGB; override;

This item has no description.

Public procedure CrossFade(ARect: TRect; Source1, Source2: IBGRAScanner; AFadePosition: byte; mode: TDrawMode = dmDrawWithTransparency); overload; override;

BGRA bitmap functions

Public procedure CrossFade(ARect: TRect; Source1, Source2: IBGRAScanner; AFadeMask: IBGRAScanner; mode: TDrawMode = dmDrawWithTransparency); overload; override;

This item has no description.

Public procedure Deserialize(AStream: TStream); override;

Reads the image in a stream that was previously serialized

Public procedure Draw(ACanvas: TCanvas; x, y: integer; Opaque: boolean = True); overload; override;

Canvas drawing functions

Public procedure Draw(ACanvas: TCanvas; Rect: TRect; Opaque: boolean = True); overload; override;

This item has no description.

Public procedure DrawHorizLine(x, y, x2: int32or64; ec: TExpandedPixel); override; overload;

Draws an horizontal line with gamma correction at line ''y'' and at columns ''x'' to ''x2'' included, using specified color

Public procedure DrawHorizLineDiff(x, y, x2: int32or64; c, compare: TBGRAPixel; maxDiff: byte); override;

Draws an horizontal line with gamma correction at line ''y'' and at columns ''x'' to ''x2'' included, using specified color, and with a transparency that increases with the color difference with ''compare''. If the difference is greater than ''maxDiff'', pixels are not changed

Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeTexture: IBGRAScanner; AWidth: single; AFillColor: TBGRAPixel); overload; override;

This item has no description.

Public procedure DrawPath(APath: IBGRAPath; AStrokeColor: TBGRAPixel; AWidth: single; AFillTexture: IBGRAScanner); overload; override;

This item has no description.

Public procedure DrawPath(APath: IBGRAPath; AStrokeTexture: IBGRAScanner; AWidth: single; AFillColor: TBGRAPixel); overload; override;

This item has no description.

Public procedure DrawPath(APath: IBGRAPath; AStrokeColor: TBGRAPixel; AWidth: single; AFillColor: TBGRAPixel); overload; override;

Draws and fills a path

Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeColor: TBGRAPixel; AWidth: single; AFillColor: TBGRAPixel); overload; override;

Draws and fills a path with a matrix transform

Public procedure DrawPath(APath: IBGRAPath; AStrokeTexture: IBGRAScanner; AWidth: single; AFillTexture: IBGRAScanner); overload; override;

This item has no description.

Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeTexture: IBGRAScanner; AWidth: single; AFillTexture: IBGRAScanner); overload; override;

This item has no description.

Public procedure DrawPath(APath: IBGRAPath; AMatrix: TAffineMatrix; AStrokeColor: TBGRAPixel; AWidth: single; AFillTexture: IBGRAScanner); overload; override;

This item has no description.

Public procedure DrawPixel(x, y: int32or64; const c: TBGRAPixel); overload; override;

Draws a pixel with gamma correction at (''x'',''y''). Pixel is supplied in sRGB colorspace

Public procedure DrawPixels(c: TBGRAPixel; start, Count: integer); override;

This item has no description.

Public procedure DrawPolygonAntialias(const points: array of TPointF; c: TBGRAPixel; w: single; fillcolor: TBGRAPixel); overload; override;

Draws a filled polygon using current pen style/cap/join in one go. The stroke is stricly over the fill even if partially transparent. The polygon is always closed. You don't need to set the last point to be the same as the first point.

Public procedure DrawPolyLineAntialias(const points: array of TPointF; c: TBGRAPixel; w: single; fillcolor: TBGRAPixel); overload; override;

Draws and fill a polyline using current pen style/cap/join in one go. The stroke is stricly over the fill even if partially transparent. ''fillcolor'' specifies a color to fill the polygon formed by the points

Public procedure DrawVertLine(x, y, y2: int32or64; c: TBGRAPixel); override;

Draws a vertical line with gamma correction at column ''x'' and at row ''y'' to ''y2''

Public procedure EllipseAntialias(x, y, rx, ry: single; c: TBGRAPixel; w: single; back: TBGRAPixel); overload; override;

Draws and fills an ellipse

Public procedure EllipseAntialias(AOrigin, AXAxis, AYAxis: TPointF; c: TBGRAPixel; w: single; back: TBGRAPixel); overload; override;

This item has no description.

Public class procedure EraseBrush(out ABrush: TUniversalBrush; AAlpha: Word); override;

This item has no description.

Public procedure EraseMask(x,y: integer; AMask: TBGRACustomBitmap; alpha: byte=255); override;

This item has no description.

Public procedure ErasePixel(x, y: int32or64; alpha: byte); override;

Erase the content of the pixel by reducing the value of the alpha channel. ''alpha'' specifies how much to decrease. If the resulting alpha reaches zero, the content is replaced by ''BGRAPixelTransparent''

Public procedure FastBlendHorizLine(x, y, x2: int32or64; c: TBGRAPixel); override;

Draws an horizontal line without gamma correction at line ''y'' and at columns ''x'' to ''x2'' included, using specified color

Public procedure FastBlendPixel(x, y: int32or64; const c: TBGRAPixel); override;

Draws a pixel without gamma correction at (''x'',''y''). Pixel is supplied in sRGB colorspace

Public procedure FastBlendVertLine(x, y, y2: int32or64; c: TBGRAPixel); override;

Draws a vertical line without gamma correction at column ''x'' and at row ''y'' to ''y2''

Public procedure Fill(c: TBGRAPixel; start, Count: integer); overload; override;

Filling

Public procedure FillClearTypeMask(x,y: integer; xThird: integer; AMask: TBGRACustomBitmap; texture: IBGRAScanner; ARGBOrder: boolean = true); override;

This item has no description.

Public procedure FillClearTypeMask(x,y: integer; xThird: integer; AMask: TBGRACustomBitmap; color: TBGRAPixel; ARGBOrder: boolean = true); override;

This item has no description.

Public procedure FillEllipseLinearColorAntialias(AOrigin, AXAxis, AYAxis: TPointF; outercolor, innercolor: TBGRAPixel); overload; override;

This item has no description.

Public procedure FillEllipseLinearColorAntialias(x, y, rx, ry: single; outercolor, innercolor: TBGRAPixel); overload; override;

Fills an ellipse with a gradient of color. ''outercolor'' specifies the end color of the gradient on the border of the ellipse and ''innercolor'' the end color of the gradient at the center of the ellipse

Public procedure FillMask(x,y: integer; AMask: TCustomUniversalBitmap; ATexture: IBGRAScanner; ADrawMode: TDrawMode; AOpacity: byte); overload; override;

This item has no description.

Public procedure FillMask(x,y: integer; AMask: TCustomUniversalBitmap; const AColor: TBGRAPixel; ADrawMode: TDrawMode); overload; override;

This item has no description.

Public procedure FillPolyLinearColor(const points: array of TPointF; AColors: array of TBGRAPixel); override;

This item has no description.

Public procedure FillPolyLinearMapping(const points: array of TPointF; texture: IBGRAScanner; texCoords: array of TPointF; TextureInterpolation: Boolean); override;

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

Fills a polygon with a texture that is linearly mapped.

Example filling a trapeze with a texture:

fillpolylinearmapping

procedure TForm1.PaintImage;
var image: TBGRABitmap;
    tex: TBGRABitmap;
begin
  image := TBGRABitmap.Create(ClientWidth,ClientHeight, BGRABlack );

  tex:= TBGRABitmap.Create('image.png');
  image.FillPolyLinearMapping( [PointF(110,10), PointF(250,10), PointF(350,160), PointF(10,160)], tex,
             [PointF(0,0), PointF(tex.width-1,0), PointF(tex.Width-1,tex.Height-1), PointF(0,tex.Height-1)], true);
  tex.Free;

  image.Draw(Canvas,0,0,True);
  image.free;
end;

Public procedure FillPolyLinearMappingLightness(const points: array of TPointF; texture: IBGRAScanner; texCoords: array of TPointF; lightnesses: array of word; TextureInterpolation: Boolean); override;

This item has no description.

Public procedure FillPolyPerspectiveMapping(const points: array of TPointF; const pointsZ: array of single; texture: IBGRAScanner; texCoords: array of TPointF; TextureInterpolation: Boolean; zbuffer: psingle = nil); override;

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

Fills a polygon with a texture that is mapped with perspective.

Example filling a trapeze with a texture:

fillpolyperspectivemapping

procedure TForm1.PaintImage;
var image: TBGRABitmap;
    tex: TBGRABitmap;
begin
  image := TBGRABitmap.Create(ClientWidth,ClientHeight, BGRABlack );

  tex:= TBGRABitmap.Create('image.png');
  image.FillPolyPerspectiveMapping( [PointF(110,10), PointF(250,10), PointF(350,160), PointF(10,160)],
                                    [75,             75,             50,              50],
       tex, [PointF(0,0), PointF(tex.width-1,0), PointF(tex.Width-1,tex.Height-1), PointF(0,tex.Height-1)], true);
  tex.Free;

  image.Draw(Canvas,0,0,True);
  image.free;
end;

Public procedure FillPolyPerspectiveMappingLightness(const points: array of TPointF; const pointsZ: array of single; texture: IBGRAScanner; texCoords: array of TPointF; lightnesses: array of word; TextureInterpolation: Boolean; zbuffer: psingle = nil); override;

This item has no description.

Public procedure FillQuadAffineMapping(Orig,HAxis,VAxis: TPointF; AImage: TBGRACustomBitmap; APixelCenteredCoordinates: boolean = true; ADrawMode: TDrawMode = dmDrawWithTransparency; AOpacity: byte = 255); override;

This item has no description.

Public procedure FillQuadAffineMappingAntialias(Orig,HAxis,VAxis: TPointF; AImage: TBGRACustomBitmap; APixelCenteredCoordinates: boolean = true; AOpacity: byte = 255); override;

This item has no description.

Public procedure FillQuadLinearColor(pt1,pt2,pt3,pt4: TPointF; c1,c2,c3,c4: TBGRAPixel); override;

This item has no description.

Public procedure FillQuadLinearColorAntialias(pt1,pt2,pt3,pt4: TPointF; c1,c2,c3,c4: TBGRAPixel); override;

This item has no description.

Public procedure FillQuadLinearMapping(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; TextureInterpolation: Boolean= True; ACulling: TFaceCulling = fcNone; ACropToPolygon: boolean = true); override;

This item has no description.

Public procedure FillQuadLinearMappingAntialias(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ACulling: TFaceCulling = fcNone); override;

This item has no description.

Public procedure FillQuadLinearMappingLightness(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; light1,light2,light3,light4: word; TextureInterpolation: Boolean= True); override;

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

Fills a quadrilateral with linear mapping and lightness

Public procedure FillQuadPerspectiveMapping(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ACleanBorders: TRect; ADrawMode: TDrawMode = dmDrawWithTransparency); override;

This item has no description.

Public procedure FillQuadPerspectiveMapping(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ADrawMode: TDrawMode = dmDrawWithTransparency); override;

This item has no description.

Public procedure FillQuadPerspectiveMappingAntialias(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF); override;

This item has no description.

Public procedure FillQuadPerspectiveMappingAntialias(pt1,pt2,pt3,pt4: TPointF; texture: IBGRAScanner; tex1, tex2, tex3, tex4: TPointF; ACleanBorders: TRect); override;

This item has no description.

Public procedure FillRect(x, y, x2, y2: integer; texture: IBGRAScanner; mode: TDrawMode; AScanOffset: TPoint; ditheringAlgorithm: TDitheringAlgorithm); overload; override;

Fills completely a rectangle, without any border, with the specified ''texture'' and with the specified ''mode''

Public procedure FillTriangleLinearColor(pt1,pt2,pt3: TPointF; c1,c2,c3: TBGRAPixel); override;

==== Gradient polygons ====

Public procedure FillTriangleLinearColorAntialias(pt1,pt2,pt3: TPointF; c1,c2,c3: TBGRAPixel); override;

This item has no description.

Public procedure FillTriangleLinearMapping(pt1,pt2,pt3: TPointF; texture: IBGRAScanner; tex1, tex2, tex3: TPointF; TextureInterpolation: Boolean= True); override;

This item has no description.

Public procedure FillTriangleLinearMappingAntialias(pt1,pt2,pt3: TPointF; texture: IBGRAScanner; tex1, tex2, tex3: TPointF); override;

This item has no description.

Public procedure FillTriangleLinearMappingLightness(pt1,pt2,pt3: TPointF; texture: IBGRAScanner; tex1, tex2, tex3: TPointF; light1,light2,light3: word; TextureInterpolation: Boolean= True); override;

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

Fills a triangle with linear mapping of a texture and lightness

Public procedure GradientFill(x, y, x2, y2: integer; gradient: TBGRACustomGradient; gtype: TGradientType; o1, o2: TPointF; mode: TDrawMode; Sinus: Boolean=False; ditherAlgo: TDitheringAlgorithm = daNearestNeighbor); override;

This item has no description.

Public procedure GradientFill(x, y, x2, y2: integer; c1, c2: TBGRAPixel; gtype: TGradientType; o1, o2: TPointF; mode: TDrawMode; gammaColorCorrection: boolean = True; Sinus: Boolean=False; ditherAlgo: TDitheringAlgorithm = daNearestNeighbor); override;

This item has no description.

Public procedure GrayscaleToAlpha; override;

This item has no description.

Public procedure HorizLineDiff(x, y, x2: int32or64; const ABrush: TUniversalBrush; ACompare: TBGRAPixel; AMaxDiffW: word); override;

This item has no description.

Public procedure InplaceGrayscale(ABounds: TRect; AGammaCorrection: boolean = true); overload; override;

This item has no description.

Public procedure InplaceGrayscale(AGammaCorrection: boolean = true); overload; override;

This item has no description.

Public procedure InplaceNormalize(ABounds: TRect; AEachChannel: boolean = True); overload; override;

This item has no description.

Public procedure InplaceNormalize(AEachChannel: boolean = True); overload; override;

This item has no description.

Public procedure InvalidateBitmap; override;

This item has no description.

Public procedure LinearNegative; override;

This item has no description.

Public procedure LinearNegativeRect(ABounds: TRect); override;

This item has no description.

Public procedure LoadFromBitmapIfNeeded; override;

call if you modify with Scanline

Public class procedure MaskBrush(out ABrush: TUniversalBrush; AScanner: IBGRAScanner; AOffsetX: integer = 0; AOffsetY: integer = 0); override;

This item has no description.

Public procedure Negative; override;

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

inplace filters

Public procedure NegativeRect(ABounds: TRect); override;

This item has no description.

Public procedure NotifyBitmapChange; inline;

call to ensure that bitmap data is up to date

Public procedure ParallelFloodFill(X, Y: integer; Dest: TCustomUniversalBitmap; Color: TBGRAPixel; mode: TFloodfillMode; Tolerance: byte = 0; DestOfsX: integer = 0; DestOfsY: integer = 0); overload; override;

This item has no description.

Public procedure ParallelFloodFill(X, Y: integer; Dest: TCustomUniversalBitmap; const Brush: TUniversalBrush; Progressive: boolean; ToleranceW: Word = $00ff; DestOfsX: integer = 0; DestOfsY: integer = 0); overload; override;

This item has no description.

Public procedure PutImage(X, Y: integer; ASource: TCustomUniversalBitmap; AMode: TDrawMode; AOpacity: byte); overload; override;

This item has no description.

Public procedure PutImageAffine(AMatrix: TAffineMatrix; Source: TBGRACustomBitmap; AOutputBounds: TRect; AResampleFilter: TResampleFilter; AMode: TDrawMode; AOpacity: Byte=255; APixelCenteredCoords: boolean = true); overload; override;

This item has no description.

Public procedure RectangleAntialias(x, y, x2, y2: single; c: TBGRAPixel; w: single; back: TBGRAPixel); overload; override;

Draws a rectangle with antialiasing and fills it with color ''back''. Note that the pixel (x2,y2) is included contrary to integer coordinates

Public procedure ReplaceColor(ABounds: TRect; before, after: TColor); overload; override;

This item has no description.

Public procedure ReplaceColor(before, after: TColor); overload; override;

This item has no description.

Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; pencolor: TBGRAPixel; w: single; fillcolor: TBGRAPixel; options: TRoundRectangleOptions = []); overload; override;

Draws and fills a round rectangle

Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; penTexture: IBGRAScanner; w: single; fillTexture: IBGRAScanner; options: TRoundRectangleOptions = []); overload; override;

Draws and fills a round rectangle with textures

Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; c: TBGRAPixel; w: single; options: TRoundRectangleOptions = []); overload; override;

Draws a rounded rectangle border with antialiasing. The corners have an elliptical radius of ''rx'' and ''ry''. ''options'' specifies how to draw the corners. See [[BGRABitmap Geometry types|geometry types]]

Public procedure RoundRectAntialias(x,y,x2,y2,rx,ry: single; texture: IBGRAScanner; w: single; options: TRoundRectangleOptions = []); overload; override;

Draws a rounded rectangle border with the specified texture. The corners have an elliptical radius of ''rx'' and ''ry''. ''options'' specifies how to draw the corners. See [[BGRABitmap Geometry types|geometry types]]

Public class procedure ScannerBrush(out ABrush: TUniversalBrush; AScanner: IBGRAScanner; ADrawMode: TDrawMode = dmDrawWithTransparency; AOffsetX: integer = 0; AOffsetY: integer = 0); override;

This item has no description.

Public procedure ScanPutPixels(pdest: PBGRAPixel; count: integer; mode: TDrawMode); override;

This item has no description. Showing descriptions inherited from ancestors.

From IBGRAScanner.ScanPutPixels:

Copy a row of pixels from X to X + count - 1 to a specified destination pdest. mode indicates how to combine with existing data

From IBGRAScanner.ScanPutPixels:

Copy a row of pixels from X to X + count - 1 to a specified destination pdest. mode indicates how to combine with existing data

Public procedure Serialize(AStream: TStream); override;

Stores the image in the stream without compression nor header

Public procedure SetPixel(x, y: int32or64; c: TColor); overload; override;

Sets the pixel by replacing the content at (''x'',''y'') with the specified color. Alpha value is set to 255 (opaque)

Public procedure SetSize(AWidth, AHeight: integer); override;

For more properties, see parent class [[TBGRACustomBitmap and IBGRAScanner#TBGRACustomBitmap|TBGRACustomBitmap]]

Public class procedure SolidBrush(out ABrush: TUniversalBrush; const AColor: TBGRAPixel; ADrawMode: TDrawMode = dmDrawWithTransparency); override;

This item has no description.

Public procedure SolidBrushIndirect(out ABrush: TUniversalBrush; AColor: Pointer; ADrawMode: TDrawMode = dmDrawWithTransparency); override;

universal brushes

Public procedure StretchPutImage(ARect: TRect; Source: TBGRACustomBitmap; mode: TDrawMode; AOpacity: byte = 255); override;

This item has no description.

Public procedure SwapRedBlue; override;

This item has no description.

Public procedure SwapRedBlue(ARect: TRect); override;

This item has no description.

Public procedure TextMultiline(ALeft,ATop,AWidth: single; const sUTF8: string; ATexture: IBGRAScanner; AAlign: TBidiTextAlignment = btaNatural; AVertAlign: TTextLayout = tlTop; AParagraphSpacing: single = 0); overload; override;

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

Draw text with line breaks, filling it with a texture

Public procedure TextMultiline(ALeft,ATop,AWidth: single; const sUTF8: string; c: TBGRAPixel; AAlign: TBidiTextAlignment = btaNatural; AVertAlign: TTextLayout = tlTop; AParagraphSpacing: single = 0); overload; override;

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

Draw text with line breaks, filling it with a solid color

Public procedure TextOut(x, y: single; const sUTF8: string; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single); overload; override;

This item has no description.

Public procedure TextOut(x, y: single; const sUTF8: string; c: TBGRAPixel; align: TAlignment; ARightToLeft: boolean); overload; override;

Draws the UTF8 encoded string, with color c. If align is taLeftJustify, (x,y) is the top-left corner. If align is taCenter, (x,y) is at the top and middle of the text. If align is taRightJustify, (x,y) is the top-right corner. The value of FontOrientation is taken into account, so that the text may be rotated.

Public procedure TextOut(x, y: single; const sUTF8: string; texture: IBGRAScanner; align: TAlignment; ARightToLeft: boolean); overload; override;

Same as above functions, except that the text is filled using texture. The value of FontOrientation is taken into account, so that the text may be rotated.

Public procedure TextOut(x, y: single; const sUTF8: string; AColor: TBGRAPixel; AAlign: TAlignment; ALetterSpacing: single); overload; override;

This item has no description.

Public procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; const sUTF8: string; texture: IBGRAScanner; align: TAlignment; ARightToLeft: boolean); overload; override;

This item has no description.

Public procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; const sUTF8: string; c: TBGRAPixel; align: TAlignment; ARightToLeft: boolean); overload; override;

Same as above, except that the orientation is specified, overriding the value of the property FontOrientation.

Public procedure TextOutCurved(ACursor: TBGRACustomPathCursor; const sUTF8: string; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single); overload; override;

This item has no description.

Public procedure TextOutCurved(ACursor: TBGRACustomPathCursor; const sUTF8: string; AColor: TBGRAPixel; AAlign: TAlignment; ALetterSpacing: single); overload; override;

This item has no description.

Public procedure TextRect(ARect: TRect; x, y: integer; const sUTF8: string; style: TTextStyle; c: TBGRAPixel); overload; override;

Draw the UTF8 encoded string at the coordinate (x,y), clipped inside the rectangle ARect. Additional style information is provided by the style parameter. The color c or texture is used to fill the text. No rotation is applied.

Public procedure TextRect(ARect: TRect; x, y: integer; const sUTF8: string; style: TTextStyle; texture: IBGRAScanner); overload; override;

This item has no description.

Public procedure XorHorizLine(x, y, x2: int32or64; c: TBGRAPixel); override;

Applies xor to the pixels at line ''y'' and at columns ''x'' to ''x2'' included, using specified color. This includes the alpha channel, so if you want to preserve the opacity, provide a color ''c'' with alpha channel equal to zero

Public procedure XorPixel(x, y: int32or64; const c: TBGRAPixel); override;

Applies a logical '''xor''' to the content of the pixel with the specified value. This includes the alpha channel, so if you want to preserve the opacity, provide a color ''c'' with alpha channel equal to zero

Public procedure XorVertLine(x, y, y2: int32or64; c: TBGRAPixel); override;

Xors a vertical line at column ''x'' and at row ''y'' to ''y2''

Protected procedure DiscardBitmapChange; inline;

This item has no description.

Protected procedure DoAlphaCorrection;

This item has no description.

Protected procedure DoLoadFromBitmap; virtual;

This item has no description.

Protected procedure FreeBitmap; virtual;

This item has no description.

Protected procedure Init; override;

This item has no description. Showing description inherited from TCustomUniversalBitmap.Init.

ReadWriteConfig: TBGRAReadWriteConfig;

Protected procedure InternalArc(cx,cy,rx,ry: single; StartAngleRad,EndAngleRad: Single; ABorderColor: TBGRAPixel; w: single; AFillColor: TBGRAPixel; AOptions: TArcOptions; ADrawChord: boolean = false; ATexture: IBGRAScanner = nil); override;

This item has no description.

Protected procedure InternalCrossFade(ARect: TRect; Source1, Source2: IBGRAScanner; AFadePos: byte; AFadeMask: IBGRAScanner; mode: TDrawMode = dmDrawWithTransparency);

This item has no description.

Protected procedure InternalTextOutCurved(ACursor: TBGRACustomPathCursor; sUTF8: string; AColor: TBGRAPixel; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single);

This item has no description.

Protected procedure InternalTextOutLetterSpacing(x,y: single; sUTF8: string; AColor: TBGRAPixel; ATexture: IBGRAScanner; AAlign: TAlignment; ALetterSpacing: single);

This item has no description.

Protected procedure InternalTextOutOffset(x, y: single; const sUTF8: string; AColor: TBGRAPixel; ATexture: IBGRAScanner; AOffsets: array of TPointF); override;

This item has no description.

Protected procedure RebuildBitmap; virtual; abstract;

This item has no description.

Protected procedure SetArrowEndOffset(AValue: single); override;

This item has no description.

Protected procedure SetArrowEndRepeat(AValue: integer); override;

This item has no description.

Protected procedure SetArrowEndSize(AValue: TPointF); override;

This item has no description.

Protected procedure SetArrowStartOffset(AValue: single); override;

This item has no description.

Protected procedure SetArrowStartRepeat(AValue: integer); override;

This item has no description.

Protected procedure SetArrowStartSize(AValue: TPointF); override;

This item has no description.

Protected procedure SetCanvasAlphaCorrection(const AValue: boolean); override;

This item has no description.

Protected procedure SetCanvasDrawModeFP(const AValue: TDrawMode); override;

This item has no description.

Protected procedure SetCanvasOpacity(AValue: byte); override;

This item has no description.

Protected procedure SetCustomPenStyle(const AValue: TBGRAPenStyle); override;

This item has no description.

Protected procedure SetFontFullHeight(AHeight: integer); override;

This item has no description.

Protected procedure SetFontHeight(AHeight: integer); override;

This item has no description.

Protected procedure SetFontRenderer(AValue: TBGRACustomFontRenderer); override;

This item has no description.

Protected procedure SetInternalColor(x, y: integer; const Value: TFPColor); override;

TFPCustomImage

Protected procedure SetInternalPixel(x, y: integer; Value: integer); override;

This item has no description.

Protected procedure SetPenJoinStyle(const AValue: TPenJoinStyle); override;

This item has no description.

Protected procedure SetPenMiterLimit(const AValue: single); override;

This item has no description.

Protected procedure SetPenStyle(const AValue: TPenStyle); override;

This item has no description.

Properties

Public property Canvas2D: TBGRACanvas2D read GetCanvas2D;

Provides a canvas with 2d transformation and similar to HTML5.

Public property CanvasBGRA: TBGRACanvas read GetCanvasBGRA;

Provides a canvas with opacity and antialiasing