Class “CanvasContext”

Object > CanvasContext

The CanvasContext is used for drawing onto the canvas. It is a subset of the HTML5 CanvasRenderingContext2D.

Constructor private
Singleton No
Namespace tabris
Direct subclasses None
JSX support No

Example

import {Canvas, contentView} from 'tabris';

new Canvas({layoutData: 'stretch'})
  .onResize(({target: canvas, width, height}) => {
    let context = canvas.getContext("2d", width, height);
    context.moveTo(0, 0);
    // ...
  }).appendTo(contentView);

Methods

arc(x, y, radius, startAngle, endAngle, anticlockwise?)

Adds an arc to the path which is centered at (x, y) position with radius r starting at startAngle and ending at endAngle going in the given direction by anticlockwise (defaulting to clockwise).

Parameter Type Optional Description
x number No The x coordinate of the arc’s center.
y number No The y coordinate of the arc’s center.
radius number No The arc’s radius.
startAngle number No The angle in radians at which the arc starts, measured clockwise from the positive x axis.
endAngle number No The angle in radians at which the arc ends, measured clockwise from the positive x axis.
anticlockwise boolean Yes if true, causes the arc to be drawn counter-clockwise between the two angles.

Returns void

beginPath()

Starts a new path by emptying the list of sub-paths.

Returns void

bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

Adds a cubic Bézier curve to the path. The starting point is the last point in the current path.

Parameter Type Optional Description
cp1x number No The x axis of the coordinate for the first control point.
cp1y number No The y axis of the coordinate for the first control point.
cp2x number No The x axis of the coordinate for the second control point.
cp2y number No The y axis of the coordinate for the second control point.
x number No The x axis of the coordinate for the end point.
y number No The y axis of the coordinate for the end point.

Returns void

clearRect(x, y, width, height)

Sets all pixels in the rectangle defined by starting point (x, y) and size (width, height) to transparent, erasing any previously drawn content.

Parameter Type Optional Description
x number No The x axis of the rectangle’s upper-left corner.
y number No The y axis of the rectangle’s upper-left corner.
width number No The rectangle’s width.
height number No The rectangles height.

Returns void

closePath()

Adds a straight line from the current point to the start of the current sub-path.

Returns void

createImageData(width, height)

creates a new, blank ImageData object with the specified dimensions. All of the pixels in the new object are transparent black.

Parameter Type Optional Description
width number No The width of the new ImageData object.
height number No The height of the new ImageData object.

Returns ImageData

createImageData(imageData)

creates a new, blank ImageData object with the same dimensions as the specified existing ImageData object. All of the pixels in the new object are transparent black.

Parameter Type Optional Description
imageData ImageData No An existing ImageData object from which to copy the width and height.

Returns ImageData

drawImage(image, dx, dy)

Draws the entire given ImageBitmap at the given coordinates (dx, dy) in its natural size.

Parameter Type Optional Description
image ImageBitmap No An ImageBitmap object that has not been closed yet.
dx number No Destination x-coordinate of the upper-left corner of the image
dy number No Destination y-coordinate of the upper-left corner of the image

Returns void

drawImage(image, dx, dy, dWidth, dHeight)

Draws the entire given ImageBitmap at the given coordinates (dx, dy) in the given dimension (dWidth, dHeight).

Parameter Type Optional Description
image ImageBitmap No An ImageBitmap object that has not been closed yet.
dx number No Destination x-coordinate of the upper-left corner of the image
dy number No Destination y-coordinate of the upper-left corner of the image
dWidth number No Destination width of the image
dHeight number No Destination height of the image

Returns void

drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)

Draws a section (sx, sy, sWidth, sHeight) of the given ImageBitmap at the given coordinates (dx, dy) in the given dimension (dWidth, dHeight).

Parameter Type Optional Description
image ImageBitmap No An ImageBitmap object that has not been closed yet.
sx number No Source x-coordinate of the upper-left corner of the image
sy number No Source y-coordinate of the upper-left corner of the image
sWidth number No Source width of the image
sHeight number No Source height of the image
dx number No Destination x-coordinate of the upper-left corner of the image
dy number No Destination y-coordinate of the upper-left corner of the image
dWidth number No Destination width of the image
dHeight number No Destination height of the image

Returns void

fill()

Fills the current or path with the current fill style.

Returns void

fillRect(x, y, width, height)

draws a filled rectangle at (x, y) position whose size is determined by width and height. and whose color is determined by the fillStyle attribute.

Parameter Type Optional Description
x number No The x axis of the rectangle’s upper-left corner.
y number No The y axis of the rectangle’s upper-left corner.
width number No The rectangle’s width.
height number No The rectangles height.

Returns void

fillText(text, x, y)

Fills a given text at the given (x, y) position using the current textAlign and textBaseline values.

Parameter Type Optional Description
text string No The text to render.
x number No The x axis of the coordinate for the text starting point.
y number No The y axis of the coordinate for the text starting point.

Returns void

getImageData(x, y, width, height)

Returns an ImageData object representing the underlying pixel data for the area of the canvas denoted by the given rectangle.

Parameter Type Optional Description
x number No The x axis of the rectangle’s upper-left corner.
y number No The y axis of the rectangle’s upper-left corner.
width number No The rectangle’s width.
height number No The rectangle’s height.

Returns ImageData

lineTo(x, y)

Connects the last point in the sub-path to the (x, y) coordinates with a straight line.

Parameter Type Optional Description
x number No The x axis of the coordinate for the end of the line.
y number No The y axis of the coordinate for the end of the line.

Returns void

moveTo(x, y)

Moves the starting point of a new sub-path to the (x, y) coordinates.

Parameter Type Optional Description
x number No The x axis of the point.
y number No The y axis of the point.

Returns void

putImageData(imageData, x, y)

Paints data from the given ImageData object onto the bitmap at coordinates (x, y).

Parameter Type Optional Description
imageData ImageData No An ImageData object containing the array of pixel values.
x number No x-coordinate of the upper-left corner of the image data rectangle
y number No y-coordinate of the upper-left corner of the image data rectangle

Returns void

quadraticCurveTo(cpx, cpy, x, y)

Adds a quadratic Bézier curve to the path. The starting point is the last point in the current path.

Parameter Type Optional Description
cpx number No The x axis of the coordinate for the control point.
cpy number No The y axis of the coordinate for the control point.
x number No The x axis of the coordinate for the end point.
y number No The y axis of the coordinate for the end point.

Returns void

rect(x, y, width, height)

Creates a path for a rectangle with the top-left corner at (x, y)

Parameter Type Optional Description
x number No The x axis of the rectangle’s upper-left corner.
y number No The y axis of the rectangle’s upper-left corner.
width number No The rectangle’s width.
height number No The rectangles height.

Returns void

restore()

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

Returns void

rotate(angle)

Adds a rotation to the transformation matrix.

Parameter Type Optional Description
angle number No The angle to rotate clockwise in radians.

Returns void

save()

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

Returns void

scale(x, y)

Adds a scaling transformation to the canvas units by x horizontally and by y vertically.

Parameter Type Optional Description
x number No Scaling factor in the horizontal direction.
y number No Scaling factor in the vertical direction.

Returns void

setTransform(a, b, c, d, e, f)

resets (overrides) the current transformation to the identity matrix and then invokes a transformation described by the arguments of this method. The matrix has the following format: [[a, c, e], [b, d, f], [0, 0, 1]]

Parameter Type Optional Description
a number No Horizontal scaling.
b number No Horizontal skewing.
c number No Vertical skewing.
d number No Vertical scaling.
e number No Horizontal moving.
f number No Vertical moving.

Returns void

stroke()

Strokes the current path with the current stroke style.

Returns void

strokeRect(x, y, width, height)

draws the outline of a rectangle at (x, y) position whose size is determined by width and height using the current stroke style.

Parameter Type Optional Description
x number No The x axis of the rectangle’s upper-left corner.
y number No The y axis of the rectangle’s upper-left corner.
width number No The rectangle’s width.
height number No The rectangles height.

Returns void

strokeText(text, x, y)

Strokes a given text at the given (x, y) position using the current textAlign and textBaseline values.

Parameter Type Optional Description
text string No The text to render.
x number No The x axis of the coordinate for the text starting point.
y number No The y axis of the coordinate for the text starting point.

Returns void

transform(a, b, c, d, e, f)

Multiplies the current transformation with the matrix described by the arguments of this method. The matrix has the following format: [[a, c, e], [b, d, f], [0, 0, 1]]

Parameter Type Optional Description
a number No Horizontal scaling.
b number No Horizontal skewing.
c number No Vertical skewing.
d number No Vertical scaling.
e number No Horizontal moving.
f number No Vertical moving.

Returns void

translate(x, y)

Adds a translation transformation by moving the canvas and its origin x horizontally and y vertically on the grid.

Parameter Type Optional Description
x number No The distance to move in the horizontal direction.
y number No The distance to move in the vertical direction.

Returns void

Properties

fillStyle

Specifies the color to use inside shapes.

Type ColorValue
Settable Yes
Change events Yes

font

Specifies the current text style being used when drawing text.

Type FontValue
Settable Yes
Change events Yes

lineCap

Determines how the end points of every line are drawn.

Type 'butt' | 'round' | 'square'
Settable Yes
Change events Yes

lineJoin

Determines how two connecting segments in a shape are joined together.

Type 'bevel' | 'round' | 'miter'
Settable Yes
Change events Yes

lineWidth

The thickness of lines in space units.

Type number
Settable Yes
Change events Yes

strokeStyle

Specifies the color to use for the lines around shapes.

Type ColorValue
Settable Yes
Change events Yes

textAlign

Specifies the current text alignment being used when drawing text.

Type 'left' | 'right' | 'center' | 'start' | 'end'
Settable Yes
Change events Yes

textBaseline

Specifies the current text baseline being used when drawing text.

Type 'top' | 'hanging' | 'middle' | 'alphabetic' | 'ideographic' | 'bottom'
Settable Yes
Change events Yes

Change Events

lineWidthChanged

Fired when the lineWidth property has changed.

Parameter Type Description
value number The new value of lineWidth.

lineCapChanged

Fired when the lineCap property has changed.

Parameter Type Description
value string The new value of lineCap.

lineJoinChanged

Fired when the lineJoin property has changed.

Parameter Type Description
value string The new value of lineJoin.

fillStyleChanged

Fired when the fillStyle property has changed.

Parameter Type Description
value ColorValue The new value of fillStyle.

fontChanged

Fired when the font property has changed.

Parameter Type Description
value FontValue The new value of font.

strokeStyleChanged

Fired when the strokeStyle property has changed.

Parameter Type Description
value ColorValue The new value of strokeStyle.

textAlignChanged

Fired when the textAlign property has changed.

Parameter Type Description
value string The new value of textAlign.

textBaselineChanged

Fired when the textBaseline property has changed.

Parameter Type Description
value string The new value of textBaseline.