Я пытаюсь добавить фильтр css, прежде чем нарисовать изображение на своем холсте. Это мой javascript.Добавление фильтра к изображению перед рисованием на холсте
img = new Image();
img.src = "picture.png";
img.crossOrigin = "Anonymous";
img.style="filter: saturate(8);";
context = canvas.getContext('2d');
context.lineJoin = "round";
context.lineWidth = cursorSize;
img.onload = function() {
context = canvas.getContext('2d');
context.drawImage(this, 0,0,width,height);
layer.draw();
};
Если я загружаю это изображение во что-либо иное, кроме холста, которое он отображает, правильно. Но я не вижу насыщенного изображения на моем холсте. Я что-то упускаю? Спасибо.
Есть ли способ установить фильтр после рисования изображения? –
@AlexKonetchy уверен, просто перерисуйте холст себе: нарисуйте изображение как есть, установите свойство фильтра, скопируйте globalCompositeOperation (в случае, если есть альфа-канал) и используйте drawImage с холстом в качестве источника изображения. – K3N
Хорошо, так что так близко, но есть ли способ переключить фильтр? Я перерисовываю изображение 3 раза. Первый раз без фильтра. Второй раз с фильтром. Когда я копирую и рисую холст в третий раз, я хочу нарисовать его как исходное изображение без фильтра, но каждый раз, когда фильтр остается на все, что я его установил, второй раз. Canvas для меня так новичок ... –