¿Cómo puedo obtener el ancho y alto del elemento canvas en JavaScript?¿Cómo obtengo el ancho y alto de un lienzo HTML5?
Además, ¿cuál es el "contexto" del lienzo que sigo leyendo?
¿Cómo puedo obtener el ancho y alto del elemento canvas en JavaScript?¿Cómo obtengo el ancho y alto de un lienzo HTML5?
Además, ¿cuál es el "contexto" del lienzo que sigo leyendo?
Podría ser digno de mirar un tutorial: Firefox Canvas Tutorial
Puede obtener la anchura y la altura de un elemento canvas simplemente accediendo a las propiedades del elemento. Por ejemplo:
var canvas = document.getElementById('mycanvas');
var width = canvas.width;
var height = canvas.height;
El contexto es un objeto que obtienes del lienzo para poder dibujar en él.
El objeto de contexto le permite manipular el lienzo; puede dibujar rectángulos, por ejemplo, y mucho más.
Si desea obtener el ancho y la altura, sólo puede utilizar los atributos de HTML estándar width
y height
:
var canvas = document.getElementById('yourCanvasID');
var ctx = canvas.getContext('2d');
alert(canvas.width);
alert(canvas.height);
Esta respuesta es bastante idéntica a la de @andrewmu y no funcionará si el tamaño el lienzo a través de CSS. Ver [mi respuesta] (http://stackoverflow.com/questions/4032179/how-do-i-get-the-width-and-height-of-a-html5-canvas/31195651#31195651) para obtener una versión más robusta solución. –
Bueno, todas las respuestas antes no son del todo correcto. 2 de los principales navegadores no admiten esas 2 propiedades (IE es una de ellas) o las usan de manera diferente.
mejor solución (apoyada por la mayoría de los navegadores, pero no el registro Safari):
var canvas = document.getElementById('mycanvas');
var width = canvas.scrollWidth;
var height = canvas.scrollHeight;
lo menos, llegar valores correctos con scrollWidth y -Altura y debe establecer canvas.width y la altura cuando está redimensionado
IE9 parece ser compatible con canvas.width y height (las versiones anteriores a 9 no admitían ningún tipo de canvas), solo lo he probado. ¿Qué problemas te toparon? ¿Y cuál es el otro navegador principal? – thomanski
Correcto, realmente nunca actualizo IE porque no lo uso. El otro navegador principal es Opera que no/no actualiza el ancho y alto mientras cambia el tamaño. – Bitterblue
canvas.width/height no funciona en firefox – schwiz
ahora a partir del año 2015 todos (grandes?) Navegadores parecen alow c.width
y c.height
para obtener el lienzo tamaño interno, sino:
la pregunta como las respuestas se missleading, debido a que el lienzo tiene, en principio, 2 tamaños diferentes/independientes.
El "HTML" digamos ancho CSS/altura y su propia (atributo,) de anchura/altura
vistazo a este short example of different sizing, donde pongo unas 200/200 lienzo en un elemento html-
300/100Con la mayoría de los ejemplos (todos los que vi) no hay un conjunto de tamaños css, por lo que se consigue el ancho y alto del tamaño (de dibujo) del lienzo. Pero eso no es obligatorio, y puede producir resultados divertidos, si toma el tamaño incorrecto, es decir. css ancho/alto para posicionamiento interno.
Las respuestas citan canvas.width
retorno las dimensiones internas de la tela, es decir,los que se especifican al crear el elemento:
<canvas width="500" height="200">
Si ajusta el tamaño del lienzo con CSS, sus dimensiones DOM acceso por .scrollWidth
y .scrollHeight
:
var canvasElem = document.querySelector('canvas');
document.querySelector('#dom-dims').innerHTML = 'Canvas DOM element width x height: ' +
canvasElem.scrollWidth +
' x ' +
canvasElem.scrollHeight
var canvasContext = canvasElem.getContext('2d');
document.querySelector('#internal-dims').innerHTML = 'Canvas internal width x height: ' +
canvasContext.canvas.width +
' x ' +
canvasContext.canvas.height;
canvasContext.fillStyle = "#00A";
canvasContext.fillText("Distorted", 0, 10);
<p id="dom-dims"></p>
<p id="internal-dims"></p>
<canvas style="width: 100%; height: 123px; border: 1px dashed black">
tuve un problema porque mi lienzo estaba dentro de un contenedor sin ID, así que usé este código jquery debajo de
$('.cropArea canvas').width()
Tenga en cuenta que el tutorial de Mozilla es básicamente un conjunto de enlaces rotos ahora, desafortunadamente. Espero que lo arreglen algún día. –
Esto devuelve el tamaño del lienzo de contexto en Chrome 31. – shuji
esto funciona solo si 'ancho' y' alto' se especifican directamente como atributos de etiqueta ' – vladkras