2010-02-13 4 views
6

Je développe une application de pinceau en javascript en utilisant processing.js Il utilise un objet canvas. Je veux garder une image à l'arrière-plan de la toile. Dessine quelque chose au premier plan. Et en économisant j'ai besoin d'obtenir seulement des données de premier plan. Pour cela, nous devons rendre l'objet canvas transparent pour que l'image d'arrière-plan soit visible.Est-il possible de créer une toile transparente?

Je ne vois aucune option pour rendre la toile transparente. Comment je fais ça?

+3

a répondu ci-dessous? – Ross

+1

La bonne réponse pour cela était Jared. Pourquoi? Parce que l'affiche d'origine disait qu'il fallait que cela soit fait avec * ProcessingJS *, ce qui rend tous les éléments de la toile avec un arrière-plan gris comme * default *. Il veut remplacer ce comportement par défaut. – YOMorales

Répondre

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

est tout ce dont vous avez besoin =)

Gardez à l'esprit que vous pouvez utiliser le style CSS sur l'objet de la toile. Pourquoi ne pas mettre l'image dans la toile et rendre vos traits et remplissages transparents?

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"; 
6

<canvas> est transparent par défaut.

J'ai fait une preuve de concept qui se trouve ici:

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

contre Testée IE6, IE7, IE8, Firefox 2, Firefox 3, Chrome et iPhone.

+2

Cela fonctionne lorsque vous utilisez d'autres bibliothèques de canevas/API. Notez que l'affiche originale indiquait qu'il fallait que cela soit fait avec * ProcessingJS *, ce qui rend tous les éléments de la toile avec un arrière-plan gris comme * default *. Il veut remplacer ce comportement par défaut. La réponse de Jared est en fait la bonne. – YOMorales

+0

Vous avez raison. Ça me manque d'interpréter la question. –

+0

Pas de problème. Je fais aussi mes fréquentes erreurs. ;) – YOMorales

13

Mieux encore, au sommet de vos PJs vient de mettre:

/* @pjs transparent=true; */ 

... puis dans la boucle de tirage:

background(0, 0, 0, 0); 

le tour est joué!

+4

Réponse correcte lors de l'utilisation de * ProcessingJS *. Cela a également résolu mes problèmes. – YOMorales

Questions connexes