简体   繁体   中英

clear Canvas when using globalCompositeOperation = 'source-in'

I'm drawing a face in a canvas with a mask. the face is apearing only where the mask is full.

function drawface(){ this.ctx.globalCompositeOperation = 'source-in';
    this.ctx.drawImage(msk, 0, 0, msk_w, msk_w, x, marg, h_c, h_c );
    this.ctx.drawImage(this.face, 0, 0, w_f, h_f, x+x_offset, marg+y_offset, h_c, h_c);}

it's working fine, but I want to move the face on drag. So I need to reset the canvas, then redraw the face. But when I do

function resetCanvas(){
    this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);
    }
    

I get a blank canvas, and the drawface function don't work any more after resetCanvas is called. I tried with save and reset too, but I couldn't find a working solution. Can any one help please? thanks !

Needed to reset globalCompositeOperation after drawing the face.

this.ctx.globalCompositeOperation = 'source-over';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM