我正在为我的游戏引擎制作一些粒子动画,我想知道是否可以更改画布的 ImageElement 对象的hue、 gamma 和其他图像属性,从而保持图像的形状。
到目前为止,我尝试过的是:
_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()”(仅绘制矩形)到应用变换和图像对象。
结果是这样的:(红色颗粒是半透明的圆圈)
有没有其他方法可以仅对图像形状进行着色或直接修改对象,以便转换仅适用于图像的可见部分?