我正在尝试更新画布元素的globalAlpha。画布包含一个图像和两个文本。我在底部显示代码。
我想在之后将globalAlpha属性从0.6更改为1。我怎样才能在考虑到表演的情况下做到最优雅呢?
var ctx = canvasElement.getContext("2d");
ctx.globalAlpha = 0.6;
//background gradient
var gradient = ctx.createLinearGradient(0, 0, 0, options["height"]);
gradient.addColorStop(0, options["colorStop0"]);
gradient.addColorStop(1, options["colorStop1"]);
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, options["width"], options["height"]);
//program
ctx.font = options.programText["font"];
ctx.fillStyle = options.programText["color"];
ctx.fillText(prog.title, options.programText["x"], options.programText["y"]);
//channel number
ctx.font = options.channelNumber["font"];
ctx.fillStyle = options.channelNumber["color"];
ctx.fillText(item_index + 1, options.channelNumber["x"], options.channelNumber["y"]);
//channel logo
var channelLogo = new Image();
channelLogo.onload = function () {
var clX = options.channelLogo["x"];
var clY = options.channelLogo["y"];
ctx.drawImage(channelLogo, clX, clY, channelLogo.width, channelLogo.height);
};
channelLogo.src = this.getChannelLogo(channel);
最佳答案
只需进行像素操作,就可以在绘制后更新画布。
使用画布上下文的getImageData&putImageData方法。
但没有任何方法像画布上下文的“changeAlpha(x,y,width,height,alphaValue)”。
我的应用程序也面临同样的问题。