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
integerreflecting theheightHTML 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 of150is used. HTMLCanvasElement.mozOpaque- A
Booleanreflecting themoz-opaqueHTML 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
integerreflecting thewidthHTML 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 of300is used.
Methods
Inherits methods from its parent, HTMLElement.
HTMLCanvasElement.captureStream()- Returns a
CanvasCaptureMediaStreamthat 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 aCanvasRenderingContext2Dobject, whereas calling it with"experimental-webgl"(or"webgl") returns aWebGLRenderingContextobject. 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
typeparameter (defaults topng). The returned image is in a resolution of 96dpi. HTMLCanvasElement.toBlob()- Creates a
Blobobject 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
OffscreenCanvasobject, either on the main thread or on a worker. HTMLCanvasElement.mozGetAsFile()- Returns a
Fileobject representing the image contained in the canvas; this file is a memory-based file, with the specifiedname. Iftypeis not specified, the image type isimage/png.
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 |
toBlob() |
No support (bug 67587) | 19 (19) [2] | ? | ? | No support (bug 71270) |
probablySupportsContext(),setContext(),transferControlToProxy() |
No support | No support | No support | No support | No support |
mozGetAsFile() |
No support | 4.0 (2) | No support | No support | No support |
captureStream() |
No support | 41 (41) | No support | No support | No support |
transferControlToOffscreen() |
No support | 44 (44) [3] | No support | No support | No support |
| 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() |
No support (bug 67587) | No support (bug 67587) | 18.0 (18) [2] | ? | ? | No support (bug 71270) |
probablySupportsContext(),setContext(),transferControlToProxy() |
No support | No support | No support | No support | No support | No support |
mozGetAsFile() |
No support | No support | 4.0 (2) | No support | No support | No support |
captureStream() |
No support | No support | 41.0 (41) | No support | No support | No support |
transferControlToOffscreen() |
No support | No support | 44.0 (44) [3] | No support | No support | No support |
[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.
[3] This feature is behind a feature preference setting. In about:config, set gfx.offscreencanvas.enabled to true.
See also
- HTML element implementing this interface:
<canvas>.
Document Tags and Contributors
Tags:
Contributors to this page:
fscholz,
teoli,
danielfriesen,
Nexii,
prometheansacrifice,
anandu,
Noitidart,
Naesten,
kohei.yoshino,
kscarfone,
trevorh,
igall,
ethertank,
Sheppy,
Irrational86,
alex35,
evilpie,
ttaubert,
ebidel,
darktrojan,
cgack,
jswisher,
tw2113,
fusionchess,
Sephr,
myakura,
ilmarihei,
mako52,
Nickolay,
Brettz9
Last updated by:
fscholz,