Luego de de una extensa compilación de datos resolvimos esta inconveniente que pueden tener ciertos los lectores. Te regalamos la solución y nuestro objetivo es servirte de mucha ayuda.
los HTMLCanvasElement.getContext()
El método devuelve un contexto de dibujo en el lienzo, o null
si el identificador de contexto no es compatible o el lienzo ya se ha configurado en un modo de contexto diferente.
Las llamadas posteriores a este método en el mismo elemento de lienzo, con el mismo contextType
argumento, siempre devolverá la misma instancia de contexto de dibujo que se devolvió la primera vez que se invocó el método. No es posible obtener un objeto de contexto de dibujo diferente en un elemento de lienzo determinado.
Sintaxis
var ctx = canvas.getContext(contextType);var ctx = canvas.getContext(contextType, contextAttributes);
Parámetros
contextType
- Es un
DOMString
que contiene el identificador de contexto que define el contexto de dibujo asociado al lienzo. Los valores posibles son:"2d"
, lo que lleva a la creación de unCanvasRenderingContext2D
objeto que representa un contexto de representación bidimensional."webgl"
(o"experimental-webgl"
) que creará unWebGLRenderingContext
objeto que representa un contexto de representación tridimensional. Este contexto solo está disponible en navegadores que implementan WebGL versión 1 (OpenGL ES 2.0)."webgl2"
que creará unWebGL2RenderingContext
objeto que representa un contexto de representación tridimensional. Este contexto solo está disponible en navegadores que implementan WebGL versión 2 (OpenGL ES 3.0). Esta es una API experimental que no debe usarse en código de producción."bitmaprenderer"
que creará unImageBitmapRenderingContext
que solo proporciona funcionalidad para reemplazar el contenido del lienzo con un determinadoImageBitmap
.
Nota: El identificador
"experimental-webgl"
se utiliza en nuevas implementaciones de WebGL. Estas implementaciones no han alcanzado la conformidad del conjunto de pruebas o los controladores de gráficos de la plataforma aún no son estables. los Grupo Khronos certifica las implementaciones de WebGL bajo ciertas reglas de conformidad. contextAttributes
-
Puede utilizar varios contextos attributes al crear su contexto de renderizado, por ejemplo:
const gl = canvas.getContext('webgl', antialias:false, depth:false);
Contexto 2d attributes:
alpha
: Booleano que indica si el lienzo contiene un canal alfa. Si se establece enfalse
, el navegador ahora sabe que el fondo siempre es opaco, lo que puede acelerar el dibujo de contenido e imágenes transparentes.desynchronized
: Booleano que sugiere al agente de usuario que reduzca la latencia desincronizando el ciclo de pintura del lienzo del bucle de eventos.- Esta API no se ha estandarizado. (Solo Gecko)
willReadFrequently
: Booleano que indica si se han planificado muchas operaciones de lectura. Esto forzará el uso de un lienzo 2D de software (en lugar de hardware acelerado) y puede ahorrar memoria al llamargetImageData()
frecuentemente. Esta opción solo está disponible si la banderagfx.canvas.willReadFrequently.enable
se establece entrue
(que, de forma predeterminada, es solo el caso de B2G / Firefox OS). - Esta API no se ha estandarizado. (Solo parpadea)
storage
: Cadena que indica qué almacenamiento se utiliza (“persistente” por defecto).
Contexto WebGL attributes:
alpha
: Booleano que indica si el lienzo contiene un búfer alfa.desynchronized
: Booleano que sugiere al agente de usuario que reduzca la latencia desincronizando el ciclo de pintura del lienzo del bucle de eventos.antialias
: Booleano que indica si se debe realizar el suavizado o no.depth
: Booleano que indica que el búfer de dibujo tiene un búfer de profundidad de al menos 16 bits.failIfMajorPerformanceCaveat
: Booleano que indica si se creará un contexto si el rendimiento del sistema es bajo o si no hay GPU de hardware disponible.powerPreference
: Una sugerencia para el agente de usuario que indica qué configuración de GPU es adecuada para el contexto WebGL. Los posibles valores son:"default"
: Deje que el agente de usuario decida qué configuración de GPU es la más adecuada. Este es el valor predeterminado."high-performance"
: Prioriza el rendimiento de renderizado sobre el consumo de energía."low-power"
: Prioriza el ahorro de energía sobre el rendimiento de renderizado.
premultipliedAlpha
: Booleano que indica que el compositor de la página asumirá que el búfer de dibujo contiene colores con alfa pre-multiplicado.preserveDrawingBuffer
: Si el valor es true los búferes no se borrarán y conservarán sus valores hasta que el autor los borre o los sobrescriba.stencil
: Booleano que indica que el búfer de dibujo tiene un búfer de plantilla de al menos 8 bits.
Valor devuelto
A RenderingContext
que es un
CanvasRenderingContext2D
por"2d"
,WebGLRenderingContext
por"webgl"
y"experimental-webgl"
,WebGL2RenderingContext
por"webgl2"
oImageBitmapRenderingContext
por"bitmaprenderer"
.
Si el contextType
no coincide con un posible contexto de dibujo o difiere del primero contextType
solicitado, null
es regresado.
Ejemplos de
<canvasid="canvas"width="300"height="300">canvas>
Puedes conseguir un 2d
contexto del lienzo con el siguiente código:
var canvas = document.getElementById('canvas');var ctx = canvas.getContext('2d'); console.log(ctx);// CanvasRenderingContext2D ...
Ahora tiene el contexto de renderizado 2D para un lienzo y puede dibujar dentro de él.
Especificaciones
Especificación | Estado | Comentario |
---|---|---|
Estándar de vida HTML La definición de ‘HTMLCanvasElement.getContext’ en esa especificación. |
Estándar de vida | Sin cambios desde la última instantánea, HTML5 |
HTML 5.1 La definición de ‘HTMLCanvasElement.getContext’ en esa especificación. |
Recomendación | |
HTML5 La definición de ‘HTMLCanvasElement.getContext’ en esa especificación. |
Recomendación | Instantánea de la Estándar de vida HTML que contiene la definición inicial. |
Compatibilidad del navegador
Escritorio | Móvil | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Cromo | Borde | Firefox | explorador de Internet | Ópera | Safari | WebView Android | Chrome Android | Firefox para Android | Opera Android | Safari en IOS | Internet de Samsung | |
getContext |
1 | 12 | 1,5 | 9 | 9 | 3 | 1 | 18 | 4 | 10.1 | 1 | 1.0 |
bitmaprenderer_context |
56 | ≤79 | 46 | No | 43 | No | No | 56 | 46 | 43 | No | 6.0 |
desynchronized |
81 ChromeOS y Windows 75 Sólo ChromeOS 71 | No | No | No | No | No | No | No | No | No | No | No |
failIfMajorPerformanceCaveat |
sí | 12 | 41 | sí | sí | ? | No | No | 41 | ? | ? | No |
powerPreference |
No | No | 63Firefox respeta la sugerencia de GPU solo en macOS. | No | No | No | No | No | No | No | No | No |
webgl_context |
339 | 7912 | 243,6 | 11 | 159 | 5.1 | 3737 | 3318 | sí | 1410.1 | ? | 2.01.0 |
webgl2_context |
56 | 79 | 5125 | No | No | No | 56 | No | No | No | No | No |
2d_alpha_context |
32 | ≤79 | 30 | No | sí | No | No | No | 30 | No | No | No |
Ver también
CanvasRenderingContext2D.getContextAttributes()
WebGLRenderingContext.getContextAttributes()
- La interfaz que lo define,
HTMLCanvasElement
. OffscreenCanvas.getContext()
- Contextos de representación disponibles:
CanvasRenderingContext2D
,WebGLRenderingContext
yWebGL2RenderingContext
yImageBitmapRenderingContext
.
Te mostramos comentarios y valoraciones
Agradecemos que quieras añadir valor a nuestro contenido tributando tu veteranía en las explicaciones.