2 votes

HTML5 Canvas : redimensionnement et coordonnées contextuelles

J'essaie de dessiner une image dans ma toile. J'ai défini mon canevas en html et je l'ai redimensionné à l'aide de JS.

var can = document.getElementById('myCanvas');
can.style.width = (window.innerWidth-20) + "px";
can.style.height = "860px";
var context=can.getContext("2d");
var img=document.getElementById("boje");
context.drawImage(img,50,0,400,140);

D'une certaine manière, les coordonnées des propriétés position et taille ne sont pas vraies pour le canevas redimensionné lorsque j'utilise la fonction drawImage (la taille de l'image est plus grande par exemple). Si par exemple je définis les dimensions du canevas en html avant le redimensionnement JS, les coordonnées sont conformes à la définition html.

Est-il possible de "réinitialiser" le contexte 2D pour utiliser les coordonnées réelles de la toile redimensionnée ?

Nous vous remercions.

2voto

robertc Points 35382

Vous ne l'avez pas redimensionné à l'aide de JS, vous l'avez redimensionné à l'aide de CSS ( style ). Il s'agit simplement d'une mise à l'échelle comme n'importe quelle autre image. Définir le width y height directement :

can.width = (window.innerWidth-20);
can.height = 860;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X