|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() |
Bonjour,
j'ai crée une page php qui permet de changer une couleur d'une image en une autre couleur preview. Cependant, je suis confronté à un problème de lenteur: une image met au moins une dizaine de secondes à se générer ( et parfois même, c'est tellement lent que le navigateur ne l'affiche pas ). C'est pourquoi j'aimerais gagner en rapidité. Voci quelques informations à propos de comment l'image est générée : 1/ je récupère l'image de départ avec imagecreatefrompng(); puis ses dimensions avec imagesx() et imagesy() 2/ je crée une boucle qui parcourt toute l'image pixel par pixel et je récupère la couleur du pixel avec imagecolorat() 3/ je convertis la couleur en format HSL, je modifie la teinte et la saturation, je reconvertis la couleur en format RGB 4/ je redéfinis le pixel à l'aide de imagesetpixel() 5/ après que toute l'image ait été parcourue, je l'enregistre avec imagepng() et je la détruis avec imagedestroy() Question: Comment gagner en rapidité ? Y aurait-il un processus plus rapide ? Si oui, lequel ? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Salut,
tu dois pouvoir modifier directement la palette avec imagecolorset. Par contre je pense que même en faisant comme ca, ca risque de demander pas mal de ressources du serveur si la couleur est changée trop vite. Faudrait peut-être bloquer les barres de temps en temps. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() |
salut,
tu penses vraiment que ce serait plus rapide de modifier la palette directement ? je vais essayer et je te donnes des nouvelles |
|
|
00
|
|
|
#4 | ||
|
Candidat au titre de Membre du Club
![]() |
voilà, je me suis creusé et j'ai abouti à ça :
Code :
Peux-tu m'aider ? j'ai $total == 0 |
||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
T'as plus besoin de parcourir les pixels, normalement ceci devrait suffire :
Code :
|
||
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() |
hey!
yon idée de ne modifier que la palette était absolument géniale !!! j'ai réussi !!! merci |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Ca donnerait un truc du style :
Code :
[edit] T'as fait comment ? ^^ |
||
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() |
normal, il faut que les couleurs de l'image soient indexées, ce qui dépend du format de ton image ( gif par exemple ça marche ), pour les autres ( images truecolor ) il faut créer une palette d'indexation des couleurs avec imagetruecolortopalette() mais l'inconvénient de celle-ci est qu'elle est en mode 256 couleurs donc les images sont moches. Le mieux c'est de préalablement convertir ton image en format gif
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com