Nicht sicher, ob Sie noch nach der Antwort suchen, aber hier ist, wie:
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";
Sie können dies auch mit Mustern tun, aber Sie bekommen weniger Bildplatzierung Flexibilität
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"
Sieht gut aus, werde es definitiv versuchen! – tbleckert
Obwohl dies letztlich das war, was ich als Lösung in Canvas gefunden hatte, nachdem ich es mit allen möglichen Dingen, die für die App erledigt werden mussten, stark vergrößert und modifiziert hatte, stellte sich heraus, dass 2 Tage vor dem Start etwas kam und hatte zwei Tage Zeit, um eine alternative Lösung zu finden, die viel schneller und browserübergreifender für Desktop und Mobile war. Die Lösung war die Antwort @MatTheCat vorgeschlagen "Verwenden Sie eine mit CSS für Border-Radius". Nur Rand-Radius verwendet: 100%, um es kreisförmig zu machen. Beste Lösung bei weitem. Just sayin ... – jaredwilli
Ich wollte nur hinzufügen, dass es die beste Vorgehensweise ist, die src * nach * Einstellung des 'onload' Callbacks zu setzen. I.e. 'thumbImg.src = 'path_to_image';' wird zur letzten Zeile –