javascript - 更改彩色图像但不更改 Canvas 后面的图像

标签 javascript html canvas

我在 Canvas 上有 2 个图像,如下所示:

enter image description here enter image description here

你可以看到这是2张透明图像 在 Canvas 中它将显示如下

enter image description here

我只想更改“汽车”的颜色。该怎么做?

我使用 dataImage 来改变颜色,但它也改变了后面的图像

我的代码:

 context.drawImage(imageObj,this.top,this.left,this.width,this.height);

 var imgData=context.getImageData(this.top, this.left, this.width, this.height);
    dataImg=imgData.data;
    for (var i=0;i<dataImg.length;i+=4)
    {
      dataImg[i]= hexToRgb(this.color).r |dataImg[i+2];
      dataImg[i+1]=hexToRgb(this.color).g |dataImg[i+2];
      dataImg[i+2]=hexToRgb(this.color).b|dataImg[i+2];
      dataImg[i+3]= 255;
    }
    context.putImageData(imgData,this.top, this.left);

请告诉我一些解决方案。 TY

最佳答案

在合成两个图像之前,您需要更改图像颜色

context.drawImage(imageObj,this.top,this.left,this.width,this.height);

不是之后。像这样的东西:

//绘制背景

context.drawImage(img1, 0, 0);

//创建所需颜色的填充,使用图像作为蒙版并添加到背景

context.clearRect(this.top,this.left,this.width,this.height));
 context.fillStyle = "#FF0000";
 context.fillRect(this.top,this.left,this.width,this.height));
 context.globalCompositeOperation = 'destination-atop';
 context.drawImage(img2, 0, 0);

关于javascript - 更改彩色图像但不更改 Canvas 后面的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45876903/

相关文章:

javascript - 在 JavaScript 工具 InfoVis 中隐藏 canvas 元素之外的 HTML

javascript - 使用 Javascript,我怎样才能检测到按键事件,而不是当用户在表单字段中输入时?

javascript - Knockout.js 中的“模型”和 'ViewModel'

javascript - 如何在点击事件上创建可编辑输入

html - 在 Mozilla 上调整窗口大小后,CSS3 转换开始工作

javascript - 高质量 Canvas 绘制图像 - Javascript

javascript - 使用jquery和ajax从html字符串中的div获取值

javascript - Chrome 扩展 : How do I get current tabs title and assign string to variable?

html - 使表格行的背景超出表格的边界

wpf - 将 3D 网格转换为 2D 并将其放置在 WPF Canvas 上