2010-02-13 24 views
6

Estoy desarrollando una aplicación de pincel en javascript utilizando processing.js Está utilizando un objeto canvas. Quiero mantener una imagen en el fondo del lienzo. Dibuja algo en primer plano. Y al guardar, necesito obtener solo datos en primer plano.¿Es posible crear un lienzo transparente

Para eso tenemos que hacer que el objeto canvas sea transparente para que la imagen de fondo sea visible.

No veo ninguna opción para hacer que el lienzo sea transparente. ¿Cómo puedo hacer eso?

+3

responde abajo? – Ross

+1

La respuesta correcta para esto fue la de Jared. ¿Por qué? Porque el póster original dijo que necesitaba que se hiciera con * ProcessingJS *, que representa todos los elementos canvas con fondo gris como * default *. Él quiere anular este comportamiento predeterminado. – YOMorales

Respuesta

3
context.clearRect(0,0,width, height) 

es todo lo que necesita =)

Tenga en cuenta que puede utilizar estilos CSS en el objeto de la lona.

canvas.style.position = "absolute"; 
canvas.style.left = the x position of the div you're going over +"px"; 
canvas.style.top = the y position of the div you're going over + "px"; 
0

¿por qué no poner la imagen en el lienzo y hacer que sus trazos y rellenos sean transparentes?

6

<canvas> es transparente por defecto.

he hecho una prueba de concepto que se puede encontrar aquí:

http://irae.pro.br/lab/canvas_pie_countdown/

probado contra IE6, IE7, IE8, Firefox 2, Firefox 3, Chrome y iPhone.

+2

Eso funciona cuando se usan otras bibliotecas de canvas/API. Tenga en cuenta que el póster original dijo que necesitaba que se hiciera con * ProcessingJS *, que representa todos los elementos canvas con fondo gris como * default *. Él quiere anular este comportamiento predeterminado. La respuesta de Jared es la correcta. – YOMorales

+0

Tiene razón. Extraño interpretar la pregunta. –

+0

No hay problema. También hago mis errores frecuentes. ;) – YOMorales

13

Aún mejor, en la parte superior de su pijama sólo hay que poner:

/* @pjs transparent=true; */ 

... y luego en su bucle de tracción:

background(0, 0, 0, 0); 

listo!

+4

Respuesta correcta cuando se usa * ProcessingJS *. También resolvió mis problemas. – YOMorales

Cuestiones relacionadas