HTMLCanvasElement

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

The HTMLCanvasElement interface provides properties and methods for manipulating the layout and presentation of <canvas> elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface.

EventTarget Node Element HTMLElement HTMLCanvasElement

Instance properties

Inherits properties from its parent, HTMLElement.

HTMLCanvasElement.height

The height HTML attribute of the <canvas> element is a non-negative integer reflecting the number of logical pixels (or RGBA values) going down one column of the canvas. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used. If no [separate] CSS height is assigned to the <canvas>, then this value will also be used as the height of the canvas in the length-unit CSS Pixel.

HTMLCanvasElement.width

The width HTML attribute of the <canvas> element is a non-negative integer reflecting the number of logical pixels (or RGBA values) going across one row of the canvas. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used. If no [separate] CSS width is assigned to the <canvas>, then this value will also be used as the width of the canvas in the length-unit CSS Pixel.

HTMLCanvasElement.mozOpaque Non-standard Deprecated

A boolean value reflecting the moz-opaque HTML attribute of the <canvas> element. It lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported in Mozilla-based browsers; use the standardized canvas.getContext('2d', { alpha: false }) instead.

HTMLCanvasElement.mozPrintCallback Non-standard

A function that is Initially null. Web content can set this to a JavaScript function that will be called when the canvas is to be redrawn while the page is being printed. When called, the callback is passed a "printState" object that implements the MozCanvasPrintState interface. The callback can get the context to draw to from the printState object and must then call done() on it when finished. The purpose of mozPrintCallback is to obtain a higher resolution rendering of the canvas at the resolution of the printer being used. See this blog post.

Instance methods

Inherits methods from its parent, HTMLElement.

HTMLCanvasElement.captureStream()

Returns a CanvasCaptureMediaStreamTrack that is a real-time video capture of the surface of the canvas.

HTMLCanvasElement.getContext()

Returns a drawing context on the canvas, or null if the context identifier is not supported, or the canvas has already been set to a different context mode.

HTMLCanvasElement.toDataURL()

Returns a data-URL containing a representation of the image in the format specified by the type parameter (defaults to png). The returned image is in a resolution of 96dpi.

HTMLCanvasElement.toBlob()

Creates a Blob object representing the image contained in the canvas; this file may be cached on the disk or stored in memory at the discretion of the user agent.

HTMLCanvasElement.transferControlToOffscreen()

Transfers control to an OffscreenCanvas object, either on the main thread or on a worker.

Events

Inherits events from its parent, HTMLElement.

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

contextlost

Fired if the browser detects that the CanvasRenderingContext2D context has been lost.

contextrestored

Fired if the browser successfully restores a CanvasRenderingContext2D context

webglcontextcreationerror

Fired if the user agent is unable to create a WebGLRenderingContext or WebGL2RenderingContext context.

webglcontextlost

Fired if the user agent detects that the drawing buffer associated with a WebGLRenderingContext or WebGL2RenderingContext object has been lost.

webglcontextrestored

Fired if the user agent restores the drawing buffer for a WebGLRenderingContext or WebGL2RenderingContext object.

Specifications

Specification
HTML
# htmlcanvaselement

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
HTMLCanvasElement
captureStream
contextlost event
contextrestored event
getContext
2d context
options.alpha parameter
options.colorSpace parameter
options.desynchronized parameter
options.willReadFrequently parameter
bitmaprenderer context
options.alpha parameter
WebGL2 context
options.alpha parameter
options.desynchronized parameter
options.failIfMajorPerformanceCaveat parameter
options.powerPreference parameter
WebGL context
options.alpha parameter
options.desynchronized parameter
options.failIfMajorPerformanceCaveat parameter
options.powerPreference parameter
webgpu context
Experimental
height
mozOpaque
DeprecatedNon-standard
mozPrintCallback
Non-standard
toBlob
quality parameter
type parameter supports "image/jpeg"
type parameter supports "image/png"
type parameter supports "image/webp"
toDataURL
type parameter supports "image/jpeg"
type parameter supports "image/png"
type parameter supports "image/webp"
transferControlToOffscreen
webglcontextcreationerror event
webglcontextlost event
webglcontextrestored event
width

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
See implementation notes.
Uses a non-standard name.
Requires a vendor prefix or different name for use.
Has more compatibility info.

See also

  • HTML element implementing this interface: <canvas>