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.

Properties

Inherits properties from its parent, HTMLElement.

HTMLCanvasElement.height
Is a positive integer reflecting the height HTML attribute of the <canvas> element interpreted in CSS pixels. 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.
HTMLCanvasElement.mozOpaque
Is a Boolean 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.width
Is a positive integer reflecting the width HTML attribute of the <canvas> element interpreted in CSS pixels. 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.
HTMLCanvasElement.mozPrintCallback
Is a function that is Initially null, Web content can set this to a JavaScript function that will be called if the page is printed. This function can then redraw the canvas at a higher resolution that is suitable for the printer being used. See this blog post.

Methods

Inherits methods from its parent, HTMLElement.

HTMLCanvasElement.captureStream()
Returns a CanvasCaptureMediaStream 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 ID is not supported. A drawing context lets you draw on the canvas. Calling getContext with "2d" returns a CanvasRenderingContext2D object, whereas calling it with "webgl" (or "experimental-webgl") returns a WebGLRenderingContext object. This context is only available on browsers that implement WebGL.
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.
HTMLCanvasElement.mozGetAsFile()
Returns a File object representing the image contained in the canvas; this file is a memory-based file, with the specified name. If type is not specified, the image type is image/png.

Specifications

Specification Status Comment
Media Capture from DOM Elements
The definition of 'HTMLCanvasElement' in that specification.
Working Draft Adds the method captureStream().
HTML Living Standard
The definition of 'HTMLCanvasElement' in that specification.
Living Standard The method getContext() now returns a RenderingContext rather than an opaque object.
The methods probablySupportsContext(), setContext() and transferControlToProxy()have been added.
HTML 5.1
The definition of 'HTMLCanvasElement' in that specification.
Recommendation  
HTML5
The definition of 'HTMLCanvasElement' in that specification.
Recommendation Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support4 Yes3.69913.1
height4 Yes3.6993.1
mozOpaque No No3.5 No No No
width4 Yes3.6993.1
captureStream51 ?43 No36 ?
getContext Yes Yes3.6993.1
mozFetchAsStream No No13 — 43 No No No
mozGetAsFile No No4 No No No
toBlob50 No1910 ms Yes Yes2
toDataURL4 Yes3.6994
transferControlToOffscreen No No443 No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support2.1 Yes Yes Yes1013.2 ?
height Yes Yes Yes4 Yes Yes ?
mozOpaque No No No4 No No ?
width Yes Yes Yes4 Yes Yes ?
captureStream51 Yes ?4338 ? ?
getContext Yes Yes ?4 Yes Yes ?
mozFetchAsStream No No No No No No ?
mozGetAsFile No No No4 No No ?
toBlob No No No4 No No ?
toDataURL3.218 No4193 ?
transferControlToOffscreen No No No443 No No ?

1. Opera Mini 5.0 and later has partial support.

2. See WebKit bug 71270.

3. From version 44: this feature is behind the gfx.offscreencanvas.enabled preference. To change preferences in Firefox, visit about:config.

See also

  • HTML element implementing this interface: <canvas>.