2010-11-28 5 views
2

Je vais d'abord expliquer ma situation afin que vous puissiez mieux connaître mon problème. Je fais une application HTML5. J'ai une toile, et en utilisant un sélecteur de couleur, vous pouvez changer la couleur de la toile. Maintenant, j'ai une image que je veux mettre sur la toile, mais que la couleur des images doit être changé en utilisant un sélecteur de couleur. Donc, je dois remplacer, disons, la couleur noire sur cette image et le mettre sur la toile afin qu'il dosnt le fond.Remplacer la couleur sur une image en temps réel

Donc, ça va ressembler à ceci:
1er couleur picker- change la couleur de la toile
2e sélecteur de couleur - remplace la couleur noire sur l'image avec celle du sélecteur de couleur et il met sur la toile

Maintenant, mon problème est de savoir comment remplacer la couleur sur l'image sans recharger la page. Ma seule condition est de ne pas utiliser silverlight, flash, java ou toute autre technologie similaire nécessitant l'installation d'un logiciel tiers sur l'appareil.

Merci d'avance. Si vous ne comprenez pas complètement ma requête, n'hésitez pas à demander.

+0

peut montrer votre application s'il vous plaît? Cherchez-vous quelque chose de similaire à cela http://mrdoob.com/projects/harmony ?? –

+0

Pas exactement, im faisant une application pour une entreprise qui montrerait comment leur produit de design d'intérieur peut regarder sur différentes couleurs de mur. – LordShigi

Répondre

2

Mon approche avec une seule solution JS pourrait être:

Après une expérience de toile Je remarque que la plupart du temps dans tout le navigateur la manipulation de pixels avec la toile pourrait soyez très lent aussi avec de petites images. Donc, une autre expérience à faire pourrait être d'obtenir la couleur du pixel, puis:

  • passer les informations de couleur à un PHP (ou un autre script côté serveur) avec un appel AJAX
  • faire la manipulation des couleurs avec une bibliothèque d'images comme GD ou imagemagik
  • retourner votre image avec la réponse Ajax
  • rechargez votre toile avec la version modifiée de l'image
+0

Merci, j'essaierai d'utiliser AJAX pour changer les couleurs avec PHP et le charger sur le canvas. J'ai encore quelques points noirs dans tout le processus, mais je vais les google.Je suis venu ici pour trouver une perspective. – LordShigi

+1

Je vous conseille d'utiliser la solution pure-JS, car même si la manipulation des pixels de la toile est lente dans certains navigateurs, l'utilisation d'AJAX sera plus lente et impliquera un trafic réseau inutile. –