--- title: HTMLCanvasElement.getContext() slug: Web/API/HTMLCanvasElement/getContext tags: - API - Canvas - HTMLCanvasElement - Referencia - metodo translation_of: Web/API/HTMLCanvasElement/getContext ---
{{APIRef("Canvas API")}}

O metodo HTMLCanvasElement.getContext() retorna um contexto de desenho no canvas, ou {{jsxref("null")}} se o contexto identificado não é suportado.

Syntax

canvas.getContext(contextType, contextAttributes);

Parametros

contextType
É um {{domxref("DOMString")}} contendo o contexto identificador definindo o contexto de desenho associado ao canvas.        Os valores possiveis são:

Note: O identificador "experimental-webgl" é usado em novas implementações do WebGL. Essas implementações ou ainda não passaram nos casos de teste, ou os drivers gráficos na plataforma ainda não estão estáveis. O Khronos Group certifica as implementações do WebGL sob certas regas de conformidade.

contextAttributes

Você pode usar alguns atributos de contexto quando criar o seu contexto de renderização, por exemplo:

canvas.getContext('webgl',
                 { antialias: false,
                   depth: false });
Atributos de contexto 2d: Atributos de contexto WebGL:

Return value

Um {{domxref("RenderingContext")}} que pode ser:

Se o contextType não bater com um possivel contexto de desenho,null é retornado.

Examples

Dado este elemento {{HTMLElement("canvas")}}:

<canvas id="canvas" width="300" height="300"></canvas>

Você pega um contexto 2d do canvas com o código a seguir:

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
console.log(ctx); // CanvasRenderingContext2D { ... }

Agora você tem contexto de renderização 2d para o canvas e você pode desenhar nele.

Specifications

Specification Status Comment
{{SpecName('HTML WHATWG', "scripting.html#dom-canvas-getcontext", "HTMLCanvasElement.getContext")}} {{Spec2('HTML WHATWG')}} Nenhuma mudança desde o ultimo snapshot, {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5.1', "scripting-1.html#dom-canvas-getcontext", "HTMLCanvasElement.getContext")}} {{Spec2('HTML5.1')}}  
{{SpecName('HTML5 W3C', "scripting-1.html#dom-canvas-getcontext", "HTMLCanvasElement.getContext")}} {{Spec2('HTML5 W3C')}} Snapshot do {{SpecName('HTML WHATWG')}} contendo a definição inicial.

Compatibilidade com navegadores

{{CompatibilityTable}}

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (2d context) {{CompatChrome(4)}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.9.2")}} {{CompatIE(9)}} {{CompatOpera(9)}} {{CompatSafari(3.1)}}
webgl context {{CompatChrome(9)}}[1]
{{CompatChrome(33)}}
{{CompatVersionUnknown}} {{CompatGeckoDesktop('1.9.2')}}[1]
{{CompatGeckoDesktop('24')}}
11.0[2] 9.0[3] 5.1[2]
webgl2 context  {{CompatChrome(56)}} {{CompatUnknown}} {{CompatGeckoDesktop('25')}}[4] {{CompatNo}} {{CompatNo}} {{CompatNo}}
2d alpha context attribute 32 {{CompatUnknown}} {{CompatGeckoDesktop(30)}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}

failIfMajorPerformanceCaveat attribute

{{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoDesktop(41)}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}}
bitmaprenderer context {{CompatNo}} {{CompatUnknown}} {{CompatGeckoDesktop(46)}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (2d context) {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("1.9.2")}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
webgl context {{CompatUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}[2] {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
webgl2 context  {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
2d alpha context attribute {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoMobile(30)}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
failIfMajorPerformanceCaveat attribute {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoMobile(41)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
bitmaprenderer context {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoMobile(46)}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

[1] Chrome 9 e Gecko 1.9.2 inicialmente implementaram isso como um experimental-webgl. Desde o Chrome 33 e Gecko 24 é implementado como definido pelo padrão: webgl.

[2] Internet Explorer 11, WebKit 5.1 e Firefox Mobile implementaram isso como um experimental-webgl.

[3] Opera 9 implementou isso como um experimental-webgl, ativado nas preferencias do usuario, na versão 15.0 a preferencia de usuario foi removida.

[4] Gecko 25 implementou isso como um "experimental-webgl2" ativado na preferencia do usuario webgl.enable-prototype-webgl2. Apartir do Gecko 42, a string "webgl2"é usada na mesma configuração e "experimental-webgl2" não é mais aceito.

See also