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
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
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.
HTMLCanvasElement.width
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.

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 "experimental-webgl" (or "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.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.
HTMLCanvasElement.mozFetchAsStream()
Creates a new input stream that, when ready, will provide the contents of the canvas as image data. When the new stream is ready, the specified callback's nsIInputStreamCallback.onInputStreamReady() method is called. If type is not specified, the image type is image/png.
Note: This may only be called from chrome code.

Specifications

Specification Status Comment
Media Capture from DOM Elements
The definition of 'HTMLCanvasElement' in that specification.
Editor's Draft Adds the method captureStream().
WHATWG 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.
HTML5.1
The definition of 'HTMLCanvasElement' in that specification.
Working Draft  
HTML5
The definition of 'HTMLCanvasElement' in that specification.
Recommendation Initial definition.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (2D context) 4.0 3.6 (1.9.2) 9.0 9.0 [1] 3.1
webgl context 9.0 as experimental-webgl
~33 as webgl
3.6 (1.9.2) as experimental-webgl
24 (24) as webgl
11.0 as experimental-webgl 9.0 as experimental-webgl, behind a user pref.
15.0 as experimental-webgl
5.1 as experimental-webgl
~8.0 as webgl
toBlob() Not supported (bug 67587) 19 (19) [2] ? ? Not supported (bug 71270)
probablySupportsContext(),
setContext(),
transferControlToProxy()
Not supported Not supported Not supported Not supported Not supported
mozGetAsFile() Not supported 4.0 (2) Not supported Not supported Not supported
mozFetchAsStream() Not supported 13 (13) Not supported Not supported Not supported
captureStream() Not supported 41 (41) Not supported Not supported Not supported
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (2D context) 2.1 (Yes) (Yes) ? 10.0 [1] 3.2
webgl context ? ? (Yes) as experimental-webgl ? ? ?
toBlob() Not supported (bug 67587) Not supported (bug 67587) 18.0 (18) [2] ? ? Not supported (bug 71270)
probablySupportsContext(),
setContext(),
transferControlToProxy()
Not supported Not supported Not supported Not supported Not supported Not supported
mozGetAsFile() Not supported Not supported 4.0 (2) Not supported Not supported Not supported
mozFetchAsStream() Not supported Not supported 13.0 (13) Not supported Not supported Not supported
captureStream() Not supported Not supported 41.0 (41) Not supported Not supported Not supported

[1] Opera Mini 5.0 and later has partial support.

[2] Support for the third parameter, has been added in Gecko 25 only: when used with the "image/jpeg" type, this argument specifies the image quality.

See also

  • HTML element implementing this interface: <canvas>.