Web/API/HTMLCanvasElement

From Get docs


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
The height HTML attribute of the <canvas> element is a positive 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 positive 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 ' '
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.mozPrintCallback '
Is 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.

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.

Obsolete methods

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.

Events

Listen to these events using addEventListener().

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 Status Comment
HTML Living StandardThe definition of 'HTMLCanvasElement' in that specification. Living Standard Primary definition of HTMLCanvasElement.
Media Capture from DOM ElementsThe definition of 'HTMLCanvasElement' in that specification. Working Draft Adds the method captureStream().

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
HTMLCanvasElement Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1.5

IE

Full support 9

Opera Full support 9

Notes'

Full support 9

Notes'

Notes' Opera Mini 5.0 and later has partial support.

Safari

Full support 2

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android Full support 10.1

Notes'

Full support 10.1

Notes'

Notes' Opera Mini 5.0 and later has partial support.

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

captureStream

Experimental'

Chrome

Full support 51

Edge

Full support ≤79

Firefox

Full support 43

IE

No support No

Opera

Full support 36

Safari

Full support 11

WebView Android

Full support 51

Chrome Android

Full support 51

Firefox Android

Full support 43

Opera Android

Full support 36

Safari iOS

Full support 11

Samsung Internet Android

Full support 5.0

getContext Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1.5

IE

Full support 9

Opera

Full support 9

Safari

Full support 2

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

height Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1.5

IE

Full support 9

Opera

Full support 9

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

mozFetchAsStream

Deprecated'Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support 13 — 43

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

mozGetAsFile

Deprecated'Non-standard'

Chrome

No support No

Edge

No support No

Firefox No support 4 — 74

Notes'

No support 4 — 74

Notes'

Notes' mozGetAsFile() was deprecated in Firefox 26 (in 2013) and was removed entirely in Firefox 74.

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 4

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

mozOpaque

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

Full support 3

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 4

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

toBlob Chrome

Full support 50

Edge Full support 79


Full support 79


No support 12 — 79

Prefixed'

Prefixed' Implemented with the vendor prefix: ms

Firefox

Full support 19

IE Full support 10

Prefixed'

Full support 10

Prefixed'

Prefixed' Implemented with the vendor prefix: ms

Opera

Full support 37

Safari

Full support 11

WebView Android

Full support 50

Chrome Android

Full support 50

Firefox Android

Full support 4

Opera Android

Full support 37

Safari iOS

Full support 11

Samsung Internet Android

Full support 5.0

toDataURL Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 2

IE

Full support 9

Opera

Full support 9

Safari

Full support 4

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 3.2

Samsung Internet Android

Full support 1.0

transferControlToOffscreen

Experimental'

Chrome

Full support 69

Edge

Full support 79

Firefox Full support 44

Disabled'

Full support 44

Disabled'

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

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

Full support 69

Firefox Android Full support 44

Disabled'

Full support 44

Disabled'

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

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

Full support 10.0

webglcontextcreationerror event Chrome

Full support 9

Edge

Full support 12

Firefox

Full support 49

IE

Full support 11

Opera

Full support 12

Safari

Full support 5.1

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 49

Opera Android

Full support 12

Safari iOS

Full support 8

Samsung Internet Android

Full support 1.5

webglcontextlost event Chrome

Full support 9

Edge

Full support 12

Firefox

Full support 4

IE

Full support 11

Opera

Full support 12

Safari

Full support 5.1

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 4

Opera Android

Full support 12

Safari iOS

Full support 8

Samsung Internet Android

Full support 1.5

webglcontextrestored event Chrome

Full support 9

Edge

Full support 12

Firefox

Full support 4

IE

Full support 11

Opera

Full support 12

Safari

Full support 5.1

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 4

Opera Android

Full support 12

Safari iOS

Full support 8

Samsung Internet Android

Full support 1.5

width Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1.5

IE

Full support 9

Opera

Full support 9

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.
Non-standard. Expect poor cross-browser support.'
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.'
Deprecated. Not for use in new websites.
See implementation notes.'
See implementation notes.
User must explicitly enable this feature.'
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also

  • HTML element implementing this interface: <canvas>