Skip to content

StaticCanvas

Defined in: src/canvas/StaticCanvas.ts:86

Static canvas class

See

demo

Fires

before:render

Fires

after:render

Fires

canvas:cleared

Fires

object:added

Fires

object:removed

Extends

Type Parameters

EventSpec extends StaticCanvasEvents = StaticCanvasEvents

Implements

Constructors

new StaticCanvas()

new StaticCanvas<EventSpec>(el?, options?): StaticCanvas<EventSpec>

Defined in: src/canvas/StaticCanvas.ts:186

Parameters

el?

string | HTMLCanvasElement

options?

TOptions<StaticCanvasOptions> = {}

Returns

StaticCanvas<EventSpec>

Overrides

createCollectionMixin(CommonMethods<CanvasEvents>).constructor

Properties

_objects

_objects: FabricObject[] = []

Defined in: src/Collection.ts:21

TODO

needs to end up in the constructor too

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>)._objects


_offset

_offset: object

Defined in: src/canvas/StaticCanvas.ts:159

left

left: number

top

top: number


allowTouchScrolling

allowTouchScrolling: boolean

Defined in: src/canvas/StaticCanvas.ts:123

Todo

move to Canvas

Implementation of

StaticCanvasOptions.allowTouchScrolling


backgroundColor

backgroundColor: string | TFiller

Defined in: src/canvas/StaticCanvas.ts:98

Background color of canvas instance.

Default

Implementation of

StaticCanvasOptions.backgroundColor


backgroundImage?

optional backgroundImage: FabricObject

Defined in: src/canvas/StaticCanvas.ts:99

Background image of canvas instance. since 2.4.0 image caching is active, please when putting an image as background, add to the canvas property a reference to the canvas it is on. Otherwise the image cannot detect the zoom vale. As an alternative you can disable image objectCaching

Default

Implementation of

StaticCanvasOptions.backgroundImage


backgroundVpt

backgroundVpt: boolean

Defined in: src/canvas/StaticCanvas.ts:97

if set to false background image is not affected by viewport transform

Since

1.6.3

Todo

we should really find a different way to do this

Default

Implementation of

StaticCanvasOptions.backgroundVpt


clipPath?

optional clipPath: FabricObject

Defined in: src/canvas/StaticCanvas.ts:105

a fabricObject that, without stroke define a clipping area with their shape. filled in black the clipPath object gets used when the canvas has rendered, and the context is placed in the top left corner of the canvas. clipPath will clip away controls, if you do not want this to happen use controlsAboveOverlay = true

Implementation of

StaticCanvasOptions.clipPath


controlsAboveOverlay

controlsAboveOverlay: boolean

Defined in: src/canvas/StaticCanvas.ts:118

Todo

move to Canvas

Implementation of

StaticCanvasOptions.controlsAboveOverlay


destroyed?

optional destroyed: boolean

Defined in: src/canvas/StaticCanvas.ts:150

If true the Canvas is in the process or has been disposed/destroyed. No more rendering operation will be executed on this canvas.


disposed?

optional disposed: boolean

Defined in: src/canvas/StaticCanvas.ts:157

Started the process of disposing but not done yet. WIll likely complete the render cycle already scheduled but stopping adding more.


elements

elements: StaticCanvasDOMManager

Defined in: src/canvas/StaticCanvas.ts:163


enableRetinaScaling

enableRetinaScaling: boolean

Defined in: src/canvas/StaticCanvas.ts:112

When true, canvas is scaled by devicePixelRatio for better rendering on retina screens

Default

Implementation of

StaticCanvasOptions.enableRetinaScaling


height

height: number

Defined in: src/canvas/StaticCanvas.ts:94

Height in virtual/logical pixels of the canvas. The canvas can be taller than width if retina scaling is active

Implementation of

StaticCanvasOptions.height


imageSmoothingEnabled

imageSmoothingEnabled: boolean

Defined in: src/canvas/StaticCanvas.ts:113

Indicates whether this canvas will use image smoothing, this is on by default in browsers

Default

Implementation of

StaticCanvasOptions.imageSmoothingEnabled


includeDefaultValues

includeDefaultValues: boolean

Defined in: src/canvas/StaticCanvas.ts:107

Indicates whether toObject/toDatalessObject should include default values if set to false, takes precedence over the object value.

Default

Implementation of

StaticCanvasOptions.includeDefaultValues


overlayColor

overlayColor: string | TFiller

Defined in: src/canvas/StaticCanvas.ts:102

Overlay color of canvas instance.

Since

1.3.9

Default

Implementation of

StaticCanvasOptions.overlayColor


overlayImage?

optional overlayImage: FabricObject

Defined in: src/canvas/StaticCanvas.ts:103

Overlay image of canvas instance. since 2.4.0 image caching is active, please when putting an image as overlay, add to the canvas property a reference to the canvas it is on. Otherwise the image cannot detect the zoom vale. As an alternative you can disable image objectCaching

Default

Implementation of

StaticCanvasOptions.overlayImage


overlayVpt

overlayVpt: boolean

Defined in: src/canvas/StaticCanvas.ts:101

if set to false overlay image is not affected by viewport transform

Since

1.6.3

Todo

we should really find a different way to do this

Default

Implementation of

StaticCanvasOptions.overlayVpt


renderOnAddRemove

renderOnAddRemove: boolean

Defined in: src/canvas/StaticCanvas.ts:110

Indicates whether StaticCanvas#add, StaticCanvas#insertAt and StaticCanvas#remove, StaticCanvas#moveTo, StaticCanvas#clear and many more, should also re-render canvas. Disabling this option will not give a performance boost when adding/removing a lot of objects to/from canvas at once since the renders are queued and executed one per frame. Disabling is suggested anyway and managing the renders of the app manually is not a big effort ( canvas.requestRenderAll() ) Left default to true to do not break documentation and old app, fiddles.

Default

Implementation of

StaticCanvasOptions.renderOnAddRemove


skipOffscreen

skipOffscreen: boolean

Defined in: src/canvas/StaticCanvas.ts:111

Based on vptCoords and object.aCoords, skip rendering of objects that are not included in current viewport. May greatly help in applications with crowded canvas and use of zoom/pan If One of the corner of the bounding box of the object is on the canvas the objects get rendered.

Default

true

Implementation of

StaticCanvasOptions.skipOffscreen


svgViewportTransformation

svgViewportTransformation: boolean

Defined in: src/canvas/StaticCanvas.ts:954

When true, getSvgTransform() will apply the StaticCanvas.viewportTransform to the SVG transformation. When true, a zoomed canvas will then produce zoomed SVG output.

Default

Implementation of

StaticCanvasOptions.svgViewportTransformation


viewportTransform

viewportTransform: TMat2D

Defined in: src/canvas/StaticCanvas.ts:125

The transformation (a Canvas 2D API transform matrix) which focuses the viewport

Examples

canvas.viewportTransform = [1, 0, 0, 1, 0, 0];
canvas.viewportTransform = [0.7, 0, 0, 0.7, 50, 50];

Default

Implementation of

StaticCanvasOptions.viewportTransform


vptCoords

vptCoords: TCornerPoint

Defined in: src/canvas/StaticCanvas.ts:130

The viewport bounding box in scene plane coordinates, see calcViewportBoundaries


width

width: number

Defined in: src/canvas/StaticCanvas.ts:93

Width in virtual/logical pixels of the canvas. The canvas can be larger than width if retina scaling is active

Implementation of

StaticCanvasOptions.width


ownDefaults

static ownDefaults: TOptions<StaticCanvasOptions> = staticCanvasDefaults

Defined in: src/canvas/StaticCanvas.ts:174

Accessors

contextContainer

Get Signature

get contextContainer(): CanvasRenderingContext2D

Defined in: src/canvas/StaticCanvas.ts:141

Returns

CanvasRenderingContext2D


lowerCanvasEl

Get Signature

get lowerCanvasEl(): HTMLCanvasElement

Defined in: src/canvas/StaticCanvas.ts:137

A reference to the canvas actual HTMLCanvasElement. Can be use to read the raw pixels, but never write or manipulate

Returns

HTMLCanvasElement

Methods

_onObjectAdded()

_onObjectAdded(obj): void

Defined in: src/canvas/StaticCanvas.ts:228

Parameters

obj

FabricObject

Returns

void

Overrides

createCollectionMixin(CommonMethods<CanvasEvents>)._onObjectAdded


_onObjectRemoved()

_onObjectRemoved(obj): void

Defined in: src/canvas/StaticCanvas.ts:243

Parameters

obj

FabricObject

Returns

void

Overrides

createCollectionMixin(CommonMethods<CanvasEvents>)._onObjectRemoved


_onStackOrderChanged()

_onStackOrderChanged(): void

Defined in: src/canvas/StaticCanvas.ts:249

Returns

void

Overrides

createCollectionMixin(CommonMethods<CanvasEvents>)._onStackOrderChanged


_set()

_set(key, value): void

Defined in: src/CommonMethods.ts:38

Parameters

key

string

value

any

Returns

void

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>)._set


absolutePan()

absolutePan(point): void

Defined in: src/canvas/StaticCanvas.ts:431

Pan viewport so as to place point at top left corner of canvas

Parameters

point

Point

to move to

Returns

void


add()

add(…objects): number

Defined in: src/canvas/StaticCanvas.ts:210

Adds objects to collection Objects should be instances of (or inherit from) FabricObject

Parameters

objects

FabricObject[]

to add

Returns

number

new array length

Overrides

createCollectionMixin(CommonMethods<CanvasEvents>).add


bringObjectForward()

bringObjectForward(object, intersecting?): boolean

Defined in: src/Collection.ts:240

Moves an object or a selection up in stack of drawn objects An optional parameter, intersecting allows to move the object in front of the first intersecting object. Where intersection is calculated with bounding box. If no intersection is found, there will not be change in the stack.

Parameters

object

FabricObject

Object to send

intersecting?

boolean

If true, send object in front of next upper intersecting object

Returns

boolean

true if change occurred

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).bringObjectForward


bringObjectToFront()

bringObjectToFront(object): boolean

Defined in: src/Collection.ts:194

Moves an object or the objects of a multiple selection to the top of the stack of drawn objects

Parameters

object

FabricObject

Object to send

Returns

boolean

true if change occurred

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).bringObjectToFront


calcOffset()

calcOffset(): object

Defined in: src/canvas/StaticCanvas.ts:266

Calculates canvas element offset relative to the document This method is also attached as “resize” event handler of window

Returns

object

left

left: number = 0

top

top: number = 0


calcViewportBoundaries()

calcViewportBoundaries(): TCornerPoint

Defined in: src/canvas/StaticCanvas.ts:528

Calculate the position of the 4 corner of canvas with current viewportTransform. helps to determinate when an object is in the current rendering viewport

Returns

TCornerPoint


cancelRequestedRender()

cancelRequestedRender(): void

Defined in: src/canvas/StaticCanvas.ts:546

Returns

void


centerObject()

centerObject(object): void

Defined in: src/canvas/StaticCanvas.ts:756

Centers object vertically and horizontally in the canvas

Parameters

object

FabricObject

Object to center vertically and horizontally

Returns

void


centerObjectH()

centerObjectH(object): void

Defined in: src/canvas/StaticCanvas.ts:734

Centers object horizontally in the canvas

Parameters

object

FabricObject

Returns

void


centerObjectV()

centerObjectV(object): void

Defined in: src/canvas/StaticCanvas.ts:745

Centers object vertically in the canvas

Parameters

object

FabricObject

Object to center vertically

Returns

void


clear()

clear(): void

Defined in: src/canvas/StaticCanvas.ts:478

Clears all contexts (background, main, top) of an instance

Returns

void


clearContext()

clearContext(ctx): void

Defined in: src/canvas/StaticCanvas.ts:463

Clears specified context of canvas element

Parameters

ctx

CanvasRenderingContext2D

Context to clear

Returns

void


clone()

clone(properties?): Promise<StaticCanvas<EventSpec>>

Defined in: src/canvas/StaticCanvas.ts:1327

Clones canvas instance

Parameters

properties?

string[]

Array of properties to include in the cloned canvas and children

Returns

Promise<StaticCanvas<EventSpec>>


cloneWithoutData()

cloneWithoutData(): StaticCanvas<EventSpec>

Defined in: src/canvas/StaticCanvas.ts:1337

Clones canvas instance without cloning existing data. This essentially copies canvas dimensions since loadFromJSON does not affect canvas size.

Returns

StaticCanvas<EventSpec>


collectObjects()

collectObjects(bbox, options): InteractiveFabricObject[]

Defined in: src/Collection.ts:326

Given a bounding box, return all the objects of the collection that are contained in the bounding box. If includeIntersecting is true, return also the objects that intersect the bounding box as well. This is meant to work with selection. Is not a generic method.

Parameters

bbox

TBBox

a bounding box in scene coordinates

options

an object with includeIntersecting

includeIntersecting

boolean = true

Returns

InteractiveFabricObject[]

array of objects contained in the bounding box, ordered from top to bottom stacking wise

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).collectObjects


complexity()

complexity(): number

Defined in: src/Collection.ts:165

Returns number representation of a collection complexity

Returns

number

complexity

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).complexity


contains()

contains(object, deep?): boolean

Defined in: src/Collection.ts:148

Returns true if collection contains an object.
Prefer using FabricObject#isDescendantOf for performance reasons instead of a.contains(b) use b.isDescendantOf(a)

Parameters

object

FabricObject

Object to check against

deep?

boolean

true to check all descendants, false to check only _objects

Returns

boolean

true if collection contains an object

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).contains


createSVGClipPathMarkup()

createSVGClipPathMarkup(options): string

Defined in: src/canvas/StaticCanvas.ts:1080

Parameters

options

TSVGExportOptions

Returns

string


createSVGFontFacesMarkup()

createSVGFontFacesMarkup(): string

Defined in: src/canvas/StaticCanvas.ts:1123

Creates markup containing SVG font faces, font URLs for font faces must be collected by developers and are not extracted from the DOM by fabricjs

Returns

string


createSVGRefElementsMarkup()

createSVGRefElementsMarkup(): string

Defined in: src/canvas/StaticCanvas.ts:1095

Creates markup containing SVG referenced elements like patterns, gradients etc.

Returns

string


dispose()

dispose(): Promise<boolean>

Defined in: src/canvas/StaticCanvas.ts:1455

Waits until rendering has settled to destroy the canvas

Returns

Promise<boolean>

a promise resolving to true once the canvas has been destroyed or to false if the canvas has was already destroyed

Throws

if aborted by a consequent call


drawClipPathOnCanvas()

drawClipPathOnCanvas(ctx, clipPath): void

Defined in: src/canvas/StaticCanvas.ts:610

Paint the cached clipPath on the lowerCanvasEl

Parameters

ctx

CanvasRenderingContext2D

Context to render on

clipPath

TCachedFabricObject

Returns

void


drawControls()

drawControls(_ctx): void

Defined in: src/canvas/StaticCanvas.ts:553

Parameters

_ctx

CanvasRenderingContext2D

Returns

void


findNewLowerIndex()

findNewLowerIndex(object, idx, intersecting?): number

Defined in: src/Collection.ts:272

Parameters

object

FabricObject

idx

number

intersecting?

boolean

Returns

number

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).findNewLowerIndex


findNewUpperIndex()

findNewUpperIndex(object, idx, intersecting?): number

Defined in: src/Collection.ts:295

Parameters

object

FabricObject

idx

number

intersecting?

boolean

Returns

number

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).findNewUpperIndex


fire()

fire<K>(eventName, options?): void

Defined in: src/Observable.ts:167

Fires event with an optional options object

Type Parameters

K extends keyof CanvasEvents

Parameters

eventName

K

Event name to fire

options?

CanvasEvents[K]

Options object

Returns

void

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).fire


forEachObject()

forEachObject(callback): void

Defined in: src/Collection.ts:91

Executes given function for each object in this group A simple shortcut for getObjects().forEach, before es6 was more complicated, now is just a shortcut.

Parameters

callback

(object, index, array) => any

Callback invoked with current object as first argument, index - as second and an array of all objects - as third.

Returns

void

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).forEachObject


get()

get(property): any

Defined in: src/CommonMethods.ts:59

Basic getter

Parameters

property

string

Property name

Returns

any

value of a property

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).get


getCenter()

getCenter(): object

Defined in: src/canvas/StaticCanvas.ts:716

Returns coordinates of a center of canvas. Returned value is an object with top and left properties

Returns

object

object with “top” and “left” number values

left

left: number

top

top: number


getCenterPoint()

getCenterPoint(): Point

Defined in: src/canvas/StaticCanvas.ts:727

Returns coordinates of a center of canvas.

Returns

Point


getContext()

getContext(): CanvasRenderingContext2D

Defined in: src/canvas/StaticCanvas.ts:471

Returns context of canvas where objects are drawn

Returns

CanvasRenderingContext2D


getElement()

getElement(): HTMLCanvasElement

Defined in: src/canvas/StaticCanvas.ts:455

Returns <canvas> element corresponding to this instance

Returns

HTMLCanvasElement


getHeight()

getHeight(): number

Defined in: src/canvas/StaticCanvas.ts:282

Returns canvas height (in px)

Returns

number


getObjects()

getObjects(…types?): FabricObject[]

Defined in: src/Collection.ts:108

Returns an array of children objects of this instance

Parameters

types?

string[]

When specified, only objects of these types are returned

Returns

FabricObject[]

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).getObjects


getVpCenter()

getVpCenter(): Point

Defined in: src/canvas/StaticCanvas.ts:794

Calculate the point in canvas that correspond to the center of actual viewport.

Returns

Point

vpCenter, viewport center


getWidth()

getWidth(): number

Defined in: src/canvas/StaticCanvas.ts:274

Returns canvas width (in px)

Returns

number


getZoom()

getZoom(): number

Defined in: src/canvas/StaticCanvas.ts:384

Returns canvas zoom level

Returns

number


insertAt()

insertAt(index, …objects): number

Defined in: src/canvas/StaticCanvas.ts:216

Inserts an object into collection at specified index

Parameters

index

number

Index to insert object at

objects

FabricObject[]

Object(s) to insert

Returns

number

new array length

Overrides

createCollectionMixin(CommonMethods<CanvasEvents>).insertAt


isEmpty()

isEmpty(): boolean

Defined in: src/Collection.ts:128

Returns true if collection contains no objects

Returns

boolean

true if collection is empty

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).isEmpty


item()

item(index): FabricObject

Defined in: src/Collection.ts:120

Returns object at specified index

Parameters

index

number

Returns

FabricObject

object at index

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).item


loadFromJSON()

loadFromJSON(json, reviver?, options?): Promise<StaticCanvas<EventSpec>>

Defined in: src/canvas/StaticCanvas.ts:1276

Populates canvas with data from the specified JSON. JSON format must conform to the one of fabric.Canvas#toJSON

IMPORTANT: It is recommended to abort loading tasks before calling this method to prevent race conditions and unnecessary networking

Parameters

json

JSON string or object

string | Record<string, any>

reviver?

<T>(serializedObj, instance) => void

Method for further parsing of JSON elements, called after each fabric object created.

options?

Abortable = {}

options

Returns

Promise<StaticCanvas<EventSpec>>

instance

Tutorial

http://fabricjs.com/fabric-intro-part-3#deserialization

See

demo

Examples

canvas.loadFromJSON(json).then((canvas) => canvas.requestRenderAll());
canvas.loadFromJSON(json, function(o, object) {
// `o` = json object
// `object` = fabric.Object instance
// ... do some stuff ...
}).then((canvas) => {
... canvas is restored, add your code.
});

moveObjectTo()

moveObjectTo(object, index): boolean

Defined in: src/Collection.ts:262

Moves an object to specified level in stack of drawn objects

Parameters

object

FabricObject

Object to send

index

number

Position to move to

Returns

boolean

true if change occurred

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).moveObjectTo


off()

Call Signature

off<K>(eventName): void

Defined in: src/Observable.ts:122

Unsubscribe all event listeners for eventname. Do not use this pattern. You could kill internal fabricJS events. We know we should have protected events for internal flows, but we don’t have yet

Type Parameters

K extends keyof CanvasEvents

Parameters
eventName

K

event name (eg. ‘after:render’)

Returns

void

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).off

Call Signature

off<K>(eventName, handler): void

Defined in: src/Observable.ts:128

unsubscribe an event listener

Type Parameters

K extends keyof CanvasEvents

Parameters
eventName

K

event name (eg. ‘after:render’)

handler

TEventCallback<any>

event listener to unsubscribe

Returns

void

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).off

Call Signature

off(handlers): void

Defined in: src/Observable.ts:133

unsubscribe event listeners

Parameters
handlers

EventRegistryObject<CanvasEvents>

handlers key/value pairs (eg. {‘after:render’: handler, ‘selection:cleared’: handler})

Returns

void

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).off

Call Signature

off(): void

Defined in: src/Observable.ts:137

unsubscribe all event listeners

Returns

void

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).off


on()

Call Signature

on<K, E>(eventName, handler): VoidFunction

Defined in: src/Observable.ts:23

Observes specified event

Type Parameters

K extends keyof CanvasEvents

E extends TPointerEventInfo | TPointerEventInfo & object | TPointerEventInfo<WheelEvent> | TPointerEventInfo & InEvent | TPointerEventInfo & OutEvent | TEventWithTarget<DragEvent> | DragEventData | DragEventData & InEvent | DragEventData & OutEvent | DropEventData | SimpleEventHandler<Event> | ModifiedEvent | { drawables: { backgroundImage: FabricObject; overlayImage: FabricObject; }; path: FabricObject; subTargets: FabricObject[]; targets: FabricObject[]; } | { target: FabricObject; } | { target: FabricObject; } | { path: FabricObject; } | { path: FabricObject; } | { target: IText; } | { target: IText; } | object & Partial<TEvent> | { target: IText; } | { ctx: CanvasRenderingContext2D; } | { ctx: CanvasRenderingContext2D; } | LayoutBeforeEvent & object | LayoutAfterEvent & object | TEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object & ModifyPathEvent | Partial<TEvent> & object | Partial<TEvent> & object | Partial<TEvent> & object | Partial<TEvent> & object

Parameters
eventName

K

Event name (eg. ‘after:render’)

handler

TEventCallback<E>

Function that receives a notification when an event of the specified type occurs

Returns

VoidFunction

disposer

Alias

on

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).on

Call Signature

on(handlers): VoidFunction

Defined in: src/Observable.ts:27

Observes specified event

Parameters
handlers

EventRegistryObject<CanvasEvents>

key/value pairs (eg. {‘after:render’: handler, ‘selection:cleared’: handler})

Returns

VoidFunction

disposer

Alias

on

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).on


once()

Call Signature

once<K, E>(eventName, handler): VoidFunction

Defined in: src/Observable.ts:62

Observes specified event once

Type Parameters

K extends keyof CanvasEvents

E extends TPointerEventInfo | TPointerEventInfo & object | TPointerEventInfo<WheelEvent> | TPointerEventInfo & InEvent | TPointerEventInfo & OutEvent | TEventWithTarget<DragEvent> | DragEventData | DragEventData & InEvent | DragEventData & OutEvent | DropEventData | SimpleEventHandler<Event> | ModifiedEvent | { drawables: { backgroundImage: FabricObject; overlayImage: FabricObject; }; path: FabricObject; subTargets: FabricObject[]; targets: FabricObject[]; } | { target: FabricObject; } | { target: FabricObject; } | { path: FabricObject; } | { path: FabricObject; } | { target: IText; } | { target: IText; } | object & Partial<TEvent> | { target: IText; } | { ctx: CanvasRenderingContext2D; } | { ctx: CanvasRenderingContext2D; } | LayoutBeforeEvent & object | LayoutAfterEvent & object | TEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object | BasicTransformEvent & object & ModifyPathEvent | Partial<TEvent> & object | Partial<TEvent> & object | Partial<TEvent> & object | Partial<TEvent> & object

Parameters
eventName

K

Event name (eg. ‘after:render’)

handler

TEventCallback<E>

Function that receives a notification when an event of the specified type occurs

Returns

VoidFunction

disposer

Alias

once

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).once

Call Signature

once(handlers): VoidFunction

Defined in: src/Observable.ts:66

Observes specified event once

Parameters
handlers

EventRegistryObject<CanvasEvents>

key/value pairs (eg. {‘after:render’: handler, ‘selection:cleared’: handler})

Returns

VoidFunction

disposer

Alias

once

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).once


relativePan()

relativePan(point): void

Defined in: src/canvas/StaticCanvas.ts:442

Pans viewpoint relatively

Parameters

point

Point

(position vector) to move by

Returns

void


renderAll()

renderAll(): void

Defined in: src/canvas/StaticCanvas.ts:492

Renders the canvas

Returns

void


renderCanvas()

renderCanvas(ctx, objects): void

Defined in: src/canvas/StaticCanvas.ts:562

Renders background, objects, overlay and controls.

Parameters

ctx

CanvasRenderingContext2D

objects

FabricObject[]

to render

Returns

void


requestRenderAll()

requestRenderAll(): void

Defined in: src/canvas/StaticCanvas.ts:518

Append a renderAll request to next animation frame. unless one is already in progress, in that case nothing is done a boolean flag will avoid appending more.

Returns

void


sendObjectBackwards()

sendObjectBackwards(object, intersecting?): boolean

Defined in: src/Collection.ts:214

Moves an object or a selection down in stack of drawn objects An optional parameter, intersecting allows to move the object in behind the first intersecting object. Where intersection is calculated with bounding box. If no intersection is found, there will not be change in the stack.

Parameters

object

FabricObject

Object to send

intersecting?

boolean

If true, send object behind next lower intersecting object

Returns

boolean

true if change occurred

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).sendObjectBackwards


sendObjectToBack()

sendObjectToBack(object): boolean

Defined in: src/Collection.ts:178

Moves an object or the objects of a multiple selection to the bottom of the stack of drawn objects

Parameters

object

FabricObject

Object to send to back

Returns

boolean

true if change occurred

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).sendObjectToBack


set()

set(key, value?): StaticCanvas<EventSpec>

Defined in: src/CommonMethods.ts:29

Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) set does not update position of object’s borders/controls. If you need to update those, call setCoords().

Parameters

key

Property name or object (if object, iterate over the object properties)

string | Record<string, any>

value?

any

Property value (if function, the value is passed into it and its return value is used as a new one)

Returns

StaticCanvas<EventSpec>

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).set


setDimensions()

Call Signature

setDimensions(dimensions, options?): void

Defined in: src/canvas/StaticCanvas.ts:361

Sets dimensions (width, height) of this canvas instance. when options.cssOnly flag active you should also supply the unit of measure (px/%/em)

Parameters
dimensions

Partial<CSSDimensions>

Object with width/height properties

options?

Options object

backstoreOnly

false

Set the given dimensions only as canvas backstore dimensions

cssOnly

true

Set the given dimensions only as css dimensions

Returns

void

Call Signature

setDimensions(dimensions, options?): void

Defined in: src/canvas/StaticCanvas.ts:365

Sets dimensions (width, height) of this canvas instance. when options.cssOnly flag active you should also supply the unit of measure (px/%/em)

Parameters
dimensions

Partial<TSize>

Object with width/height properties

options?

Options object

backstoreOnly

true

Set the given dimensions only as canvas backstore dimensions

cssOnly

false

Set the given dimensions only as css dimensions

Returns

void

Call Signature

setDimensions(dimensions, options?): void

Defined in: src/canvas/StaticCanvas.ts:369

Sets dimensions (width, height) of this canvas instance. when options.cssOnly flag active you should also supply the unit of measure (px/%/em)

Parameters
dimensions

Partial<TSize>

Object with width/height properties

options?

undefined

Options object

Returns

void


setHeight()

Call Signature

setHeight(value, options?): void

Defined in: src/canvas/StaticCanvas.ts:314

s Sets height of this canvas instance

Parameters
value

number

Value to set height to

options?

Options object

backstoreOnly

true

Set the given dimensions only as canvas backstore dimensions

cssOnly

false

Set the given dimensions only as css dimensions

Returns

void

Call Signature

setHeight(value, options?): void

Defined in: src/canvas/StaticCanvas.ts:318

s Sets height of this canvas instance

Parameters
value

Value to set height to

string | number

options?

Options object

backstoreOnly

false

Set the given dimensions only as canvas backstore dimensions

cssOnly

true

Set the given dimensions only as css dimensions

Returns

void


setViewportTransform()

setViewportTransform(vpt): void

Defined in: src/canvas/StaticCanvas.ts:392

Sets viewport transformation of this canvas instance

Parameters

vpt

TMat2D

a Canvas 2D API transform matrix

Returns

void


setWidth()

Call Signature

setWidth(value, options?): void

Defined in: src/canvas/StaticCanvas.ts:294

Sets width of this canvas instance

Parameters
value

number

Value to set width to

options?

Options object

backstoreOnly

true

Set the given dimensions only as canvas backstore dimensions

cssOnly

false

Set the given dimensions only as css dimensions

Returns

void

Call Signature

setWidth(value, options?): void

Defined in: src/canvas/StaticCanvas.ts:298

Sets width of this canvas instance

Parameters
value

Value to set width to

string | number

options?

Options object

backstoreOnly

false

Set the given dimensions only as canvas backstore dimensions

cssOnly

true

Set the given dimensions only as css dimensions

Returns

void


setZoom()

setZoom(value): void

Defined in: src/canvas/StaticCanvas.ts:423

Sets zoom level of this canvas instance

Parameters

value

number

to set zoom to, less than 1 zooms out

Returns

void


size()

size(): number

Defined in: src/Collection.ts:136

Returns a size of a collection (i.e: length of an array containing its objects)

Returns

number

Collection size

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).size


toCanvasElement()

toCanvasElement(multiplier?, options?): HTMLCanvasElement

Defined in: src/canvas/StaticCanvas.ts:1411

Create a new HTMLCanvas element painted with the current canvas content. No need to resize the actual one or repaint it. Will transfer object ownership to a new canvas, paint it, and set everything back. This is an intermediary step used to get to a dataUrl but also it is useful to create quick image copies of a canvas without passing for the dataUrl string

Parameters

multiplier?

number = 1

a zoom factor.

options?

TToCanvasElementOptions = ...

Cropping informations

Returns

HTMLCanvasElement


toDatalessJSON()

toDatalessJSON(propertiesToInclude?): any

Defined in: src/canvas/StaticCanvas.ts:817

Returns dataless JSON representation of canvas

Parameters

propertiesToInclude?

string[]

Any properties that you might want to additionally include in the output

Returns

any

json string


toDatalessObject()

toDatalessObject(propertiesToInclude?): any

Defined in: src/canvas/StaticCanvas.ts:854

Returns dataless object representation of canvas

Parameters

propertiesToInclude?

string[]

Any properties that you might want to additionally include in the output

Returns

any

object representation of an instance


toDataURL()

toDataURL(options?): string

Defined in: src/canvas/StaticCanvas.ts:1380

Exports canvas element to a dataurl image. Note that when multiplier is used, cropping is scaled appropriately

Parameters

options?

TDataUrlOptions = ...

Options object

Returns

string

Returns a data: URL containing a representation of the object in the format specified by options.format

See

demo

Examples

var dataURL = canvas.toDataURL({
format: 'jpeg',
quality: 0.8
});
var dataURL = canvas.toDataURL({
format: 'png',
left: 100,
top: 100,
width: 200,
height: 200
});
var dataURL = canvas.toDataURL({
format: 'png',
multiplier: 2
});
var myObject;
var dataURL = canvas.toDataURL({
filter: (object) => object.isContainedWithinObject(myObject) || object.intersectsWithObject(myObject)
});

toggle()

toggle(property): StaticCanvas<EventSpec>

Defined in: src/CommonMethods.ts:46

Toggles specified property from true to false or from false to true

Parameters

property

string

Property to toggle

Returns

StaticCanvas<EventSpec>

Inherited from

createCollectionMixin(CommonMethods<CanvasEvents>).toggle


toJSON()

toJSON(): any

Defined in: src/canvas/StaticCanvas.ts:845

Returns Object representation of canvas this alias is provided because if you call JSON.stringify on an instance, the toJSON object will be invoked if it exists. Having a toJSON method means you can do JSON.stringify(myCanvas)

Returns

any

JSON compatible object

Tutorial

http://fabricjs.com/fabric-intro-part-3#serialization

See

demo

Examples

var json = canvas.toJSON();
var json = canvas.toJSON(['lockMovementX', 'lockMovementY', 'lockRotation', 'lockScalingX', 'lockScalingY']);
var json = canvas.toJSON();

toObject()

toObject(propertiesToInclude?): any

Defined in: src/canvas/StaticCanvas.ts:826

Returns object representation of canvas

Parameters

propertiesToInclude?

string[]

Any properties that you might want to additionally include in the output

Returns

any

object representation of an instance


toString()

toString(): string

Defined in: src/canvas/StaticCanvas.ts:1514

Returns a string representation of an instance

Returns

string

string representation of an instance


toSVG()

toSVG(options?, reviver?): string

Defined in: src/canvas/StaticCanvas.ts:993

Returns SVG representation of canvas

Parameters

options?

TSVGExportOptions = {}

Options object for SVG output

reviver?

TSVGReviver

Method for further parsing of svg elements, called after each fabric object converted into svg representation.

Returns

string

SVG string

Function

Tutorial

http://fabricjs.com/fabric-intro-part-3#serialization

See

demo

Examples

var svg = canvas.toSVG();
var svg = canvas.toSVG({suppressPreamble: true});
var svg = canvas.toSVG({
viewBox: {
x: 100,
y: 100,
width: 200,
height: 300
}
});
var svg = canvas.toSVG({encoding: 'ISO-8859-1'});
var svg = canvas.toSVG(null, function(svg) {
return svg.replace('stroke-dasharray: ; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; ', '');
});

viewportCenterObject()

viewportCenterObject(object): void

Defined in: src/canvas/StaticCanvas.ts:764

Centers object vertically and horizontally in the viewport

Parameters

object

FabricObject

Object to center vertically and horizontally

Returns

void


viewportCenterObjectH()

viewportCenterObjectH(object): void

Defined in: src/canvas/StaticCanvas.ts:772

Centers object horizontally in the viewport, object.top is unchanged

Parameters

object

FabricObject

Object to center vertically and horizontally

Returns

void


viewportCenterObjectV()

viewportCenterObjectV(object): void

Defined in: src/canvas/StaticCanvas.ts:783

Centers object Vertically in the viewport, object.top is unchanged

Parameters

object

FabricObject

Object to center vertically and horizontally

Returns

void


zoomToPoint()

zoomToPoint(point, value): void

Defined in: src/canvas/StaticCanvas.ts:406

Sets zoom level of this canvas instance, the zoom centered around point meaning that following zoom to point with the same point will have the visual effect of the zoom originating from that point. The point won’t move. It has nothing to do with canvas center or visual center of the viewport.

Parameters

point

Point

to zoom with respect to

value

number

to set zoom to, less than 1 zooms out

Returns

void


getDefaults()

static getDefaults(): Record<string, any>

Defined in: src/canvas/StaticCanvas.ts:182

Returns

Record<string, any>