Я работаю над некоторыми анимациями частиц для своего игрового движка, и я хочу знать, можно ли изменить hue, гамму и другие свойства изображения объекта ImageElement объекта холст, сохраняя форму изображения.Изменение оттенка/оттенка элемента изображения на холсте
То, что я пытался до сих пор это:
_ctx.save();
_ctx.setStrokeColorHsl(240, 100, 50);
_ctx.fillRect(c.x, c.y, width, height);
_ctx.globalAlpha = nAlpha; //Modify the transparency
_ctx.drawImageScaled(p, c.x, c.y, width, height);
_ctx.restore();
который работает, но он применяет тон всей части изображения, что означает, если изображение является PNG с прозрачными краями он будет рисуйте даже прозрачные части, потому что он использует «fillRect()» (который рисует только прямоугольники), чтобы применить преобразование и объект изображения.
Результат заключается в следующем: (красные частицы представляют собой полупрозрачные круги)
Есть ли другой способ подкрашивать форму съемки изображения или только модифицировать объект непосредственно таким преобразованием только применимы к видимой части изображения?
Удивительно! он работал, но мне не нужно было использовать метод fillRect, нужно было использовать только глобальный составной компонент (http://api.dartlang.org/docs/releases/latest/dart_html/CanvasRenderingContext2D.html#globalCompositeOperation) и fillStyle и сделал это: _ctx.globalCompositeOperation = 'lighter'; _ctx.fillStyle = "# f30"; –