2017-08-25 24 views
0

で後ろに画像を変更しないでください、私はこのようなキャンバスで2イメージがあります。色を変更する画像が、キャンバス

enter image description here enter image description here

をあなたは、これはそれのよう表示されますキャンバスに2画像透明 で見ることができますこの

enter image description here

私は「カー」だけでそれを行うために.How色を変更したいですか?

私は色を変更する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

答えて

1

は、次の2枚の画像

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); 
+0

を追加を描く私がリストを持っています画像が自動的に描画されます。私は色を変えるためにイメージを選んだときに、どのイメージが「バックグラウンド」になるのかを知る必要があるので、この方法ではうまくいかないと思う –

関連する問題