У меня есть код, который загружает кучу изображений в скрытые элементы img, а затем цикл Javascript, который помещает каждое изображение на холст.Однако я хочу обрезать каждое изображение таким образом, чтобы при размещении на холсте оно представляло собой круг.
Мой цикл выглядит следующим образом:
$$('#avatars img').each(function(avatar) {
var canvas = $('canvas');
var context = canvas.getContext('2d');
var x = Math.floor(Math.random() * canvas.width);
var y = Math.floor(Math.random() * canvas.height);
context.beginPath();
context.arc(x+24, y+24, 20, 0, Math.PI * 2, 1);
context.clip();
context.strokeStyle = "black";
context.drawImage(document.getElementById(avatar.id), x, y);
context.stroke();
});
Проблема в том, что рисуется только первое изображение(или видно).
Если я уберу логику отсечения:
$$('#avatars img').each(function(avatar) {
var canvas = $('canvas');
var context = canvas.getContext('2d');
var x = Math.floor(Math.random() * canvas.width);
var y = Math.floor(Math.random() * canvas.height);
context.drawImage(document.getElementById(avatar.id), x, y);
});
Тогда все мои изображения будут нарисованы.
Есть ли способ получить каждое изображение отдельнообрезается?
Я попытался сбросить область обрезки, чтобы она была целым холстом между изображениями, но это не сработало.