Je ne sais pas si vous êtes à la recherche toujours la réponse, mais voici comment:
var ctx = document.getElementById('your_canvas').getContext("2d");
//ctx.lineWidth = 13;
//ctx.strokeStyle = 'rgba(0,0,0,1)';
//ctx.fillStyle="rgba(0,0,0,0)" // if using this, make sure alpha < 1
ctx.arc(100,100, 50, 0, Math.PI*2,true); // you can use any shape
ctx.clip();
var img = new Image();
img.addEventListener('load', function(e) {
ctx.drawImage(this, 0, 0, 200, 300);
//ctx.fill();
//ctx.stroke();
}, true);
img.src="/path/to/image.jpg";
Vous pouvez aussi le faire avec motif, mais vous obtenez moins de souplesse de positionnement de l'image
ctx.arc(100,100, 70, 0, Math.PI*2,true);
ctx.clip();
img = new Image()
img.addEventListener('load', function(e) {
ctx.fillStyle = ctx.createPattern(this, 'no-repeat')
ctx.fill();
}, true);
img.src="/path/to/image.jpg"
Ça a l'air génial, va certainement essayer! – tbleckert
Tandis que c'était finalement ce que j'avais trouvé comme solution dans la toile, après l'avoir augmentée et modifiée avec toutes sortes de choses qui devaient être faites pour l'application sur laquelle j'ai travaillé, il s'est avéré que 2 jours avant le lancement et a eu 2 jours pour faire une solution alternative qui s'est avérée être de loin beaucoup mieux et plus cross-navigateur pour les deux ordinateurs de bureau et mobiles. La solution était la réponse @MatTheCat suggérée "En utilisant un avec CSS pour border-radius". Bordure-rayon juste utilisé: 100% pour le rendre circulaire. La meilleure solution est de loin la meilleure. Just sayin ... – jaredwilli
Je voulais juste ajouter, que c'est la meilleure pratique pour définir le src * après * la configuration du rappel 'onload'. C'est à dire. 'thumbImg.src = 'path_to_image';' devient la dernière ligne –