2011-09-18 11 views
8

Este pequeño código claras datos de lona viejos en el intervalo:fillStyle tela en intervalos con transparencia/opacidad

// start interval 
ctx.save(); 
    ctx.fillStyle = "rgba(0, 0, 0, 0.2)"; 
    ctx.fillRect(0, 0, ctx.width, ctx.height); 
ctx.restore(); 
//some draw code for new graph 
... 
//end interval 

Mi área de trabajo se convierten en negro, porque me puse negro como color de relleno (RGBA (0, 0, 0, .2)), pero necesito un fondo transparente, no negro.

He intentado utilizar globalAlpha y imagePutData pero he fallado.

¿Cómo puedo hacer esto?

+0

has necesitado 'clearRect'? – c69

+0

si borro rect, borra todos los datos antiguos, pero necesito guardar los datos antiguos y establecer la opacidad (por eso uso el modelo de color rgba) hasta que el intervalo sea completamente transparente – user951114

+1

puede establecer 'ctx.globalCompositeOperation = 'destino -out'' y luego dibujar? – c69

Respuesta

5

Usando un rgba(0,0,0,.2) fillStyle y fillRect() funciona para mí tanto en Chrome como en Firefox - pinta un relleno negro semitransparente. Verifique para asegurarse de que no esté haciendo otra cosa que esté causando una pintura completamente opaca de algún tipo.

2

intento ctx.canvas.width, en lugar de ctx.width

3

creo que esto va a resolver su problema

ctx.fillStyle = "rgba(255, 255, 255, 0.5)";