Je galères depuis déjà au moins 2 semaines sur le problème suivant:
Ce code a pour but, dés que j'aurais résolu mon problème, de générer
des images coté serveur avec un fond en dégradé radial. Mais pour
l'instant, pour simplifier, il s'agit de faire 20 lignes de 20 carrée
de 10 Px par 10 , en alternant à chaque fois, carrée bleu, carrée
blanc, carrée bleu...
La condition if de la boucle for de la classe ligneCarree, indique
que si la couleur RVB vaut 0,255,255 alors la remplacer par la couleur
255,255,255, en alternant $rouge=0 et $rouge =255
Mais voila cela se passe bien jusqu'a la 13 ème ligne au 255 ème
carrée !!!!??? La couleur passe alors, au bleu, définitivement.
Mais alors de quoi s'agit il ?...si quelqu'un a une idée ?..
Je n'ai pourtant pas demandé de compté le nombre de carrée :?
<?php
header("Content-type: image/jpeg");
class fond
{
var $noir;
var $im;
function fond($img)
{
$this->im = $img;
$this->noir=imageColorAllocate($this->im,0,0,0);
imagefill($this->im,10,10,$this->noir);
}
}
class ligneCarree
{
var $x2;
var $couleur;
var $im;
function ligneCarree($img,$X,$x1,$y1,$y2,$rouge)
{
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
[...].. La condition if de la boucle for de la classe ligneCarree, indique que si la couleur RVB vaut 0,255,255 alors la remplacer par la couleur 255,255,255, en alternant $rouge=0 et $rouge %5 Mais voila cela se passe bien jusqu'a la 13 ème ligne au 255 ème carrée !!!!??? La couleur passe alors, au bleu, définitivement.
Je n'ai pas lu tout ton programme, mais j'ai déjà une idée qui pourrait expliquer. Si ce n'est pas cela, il faudra chercher plus loin.
[...]
$image=imagecreate($X,$Y);
Ceci crée une image basée sur une palette de couleurs (par exemple pour créer un GIF d'au plus 256 couleurs). Alors si ensuite tu fais trop d'imagecolorallocate() il est possible que tu exploses la taille de la palette.
imageJPEG($image);
Surtout si c'est pour créer une image JPEG, tu ferais mieux d'utiliser imagecreatetruecolor() à la place.
[...]..
La condition if de la boucle for de la classe ligneCarree, indique
que si la couleur RVB vaut 0,255,255 alors la remplacer par la couleur
255,255,255, en alternant $rouge=0 et $rouge %5
Mais voila cela se passe bien jusqu'a la 13 ème ligne au 255 ème
carrée !!!!??? La couleur passe alors, au bleu, définitivement.
Je n'ai pas lu tout ton programme, mais j'ai déjà une idée qui pourrait
expliquer. Si ce n'est pas cela, il faudra chercher plus loin.
[...]
$image=imagecreate($X,$Y);
Ceci crée une image basée sur une palette de couleurs (par exemple pour
créer un GIF d'au plus 256 couleurs). Alors si ensuite tu fais trop
d'imagecolorallocate() il est possible que tu exploses la taille de la
palette.
imageJPEG($image);
Surtout si c'est pour créer une image JPEG, tu ferais mieux d'utiliser
imagecreatetruecolor() à la place.
[...].. La condition if de la boucle for de la classe ligneCarree, indique que si la couleur RVB vaut 0,255,255 alors la remplacer par la couleur 255,255,255, en alternant $rouge=0 et $rouge %5 Mais voila cela se passe bien jusqu'a la 13 ème ligne au 255 ème carrée !!!!??? La couleur passe alors, au bleu, définitivement.
Je n'ai pas lu tout ton programme, mais j'ai déjà une idée qui pourrait expliquer. Si ce n'est pas cela, il faudra chercher plus loin.
[...]
$image=imagecreate($X,$Y);
Ceci crée une image basée sur une palette de couleurs (par exemple pour créer un GIF d'au plus 256 couleurs). Alors si ensuite tu fais trop d'imagecolorallocate() il est possible que tu exploses la taille de la palette.
imageJPEG($image);
Surtout si c'est pour créer une image JPEG, tu ferais mieux d'utiliser imagecreatetruecolor() à la place.
P'tit Marcel
Ceci crée une image basée sur une palette de couleurs (par exemple pour créer un GIF d'au plus 256 couleurs). Alors si ensuite tu fais trop d'imagecolorallocate() il est possible que tu exploses la taille de la palette.
J'opine. Il faudrait mieux faire au départ un colorallocate pour le rouge et un pour le bleu et ensuite se servir des pointeurs sur ces couleurs pour créer les carrés.
Par ailleurs, c'est ballot de créer chaque carré alors qu'ils sont jointifs. Pour gagner du temps, remplit ton image de bleu puis crée un carré sur deux en rouge. Au final tu auras divisé par deux le nombre de imagefilledrectangle.
eça -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Ceci crée une image basée sur une palette de couleurs (par exemple pour
créer un GIF d'au plus 256 couleurs). Alors si ensuite tu fais trop
d'imagecolorallocate() il est possible que tu exploses la taille de la
palette.
J'opine. Il faudrait mieux faire au départ un colorallocate pour le
rouge et un pour le bleu et ensuite se servir des pointeurs sur ces
couleurs pour créer les carrés.
Par ailleurs, c'est ballot de créer chaque carré alors qu'ils sont
jointifs. Pour gagner du temps, remplit ton image de bleu puis crée un
carré sur deux en rouge. Au final tu auras divisé par deux le nombre de
imagefilledrectangle.
eça
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
Ceci crée une image basée sur une palette de couleurs (par exemple pour créer un GIF d'au plus 256 couleurs). Alors si ensuite tu fais trop d'imagecolorallocate() il est possible que tu exploses la taille de la palette.
J'opine. Il faudrait mieux faire au départ un colorallocate pour le rouge et un pour le bleu et ensuite se servir des pointeurs sur ces couleurs pour créer les carrés.
Par ailleurs, c'est ballot de créer chaque carré alors qu'ils sont jointifs. Pour gagner du temps, remplit ton image de bleu puis crée un carré sur deux en rouge. Au final tu auras divisé par deux le nombre de imagefilledrectangle.
eça -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Olivier Miakinen
Il [v]audrait mieux faire au départ un colorallocate pour le rouge et un pour le bleu et ensuite se servir des pointeurs sur ces couleurs pour créer les carrés.
Tu as raison, bien sûr. Ce sera la même chose pour le script prévu, avec dégradé radial : chaque couleur ne devrait être allouée qu'une seule fois.
Par ailleurs, c'est ballot de créer chaque carré alors qu'ils sont jointifs. Pour gagner du temps, remplit ton image de bleu puis crée un carré sur deux en rouge. Au final tu auras divisé par deux le nombre de imagefilledrectangle.
Je suppose que ceci sera difficilement applicable au script final, chaque couleur ne se trouvant que sur une ligne si j'ai bien compris.
Il [v]audrait mieux faire au départ un colorallocate pour le
rouge et un pour le bleu et ensuite se servir des pointeurs sur ces
couleurs pour créer les carrés.
Tu as raison, bien sûr. Ce sera la même chose pour le script prévu, avec
dégradé radial : chaque couleur ne devrait être allouée qu'une seule fois.
Par ailleurs, c'est ballot de créer chaque carré alors qu'ils sont
jointifs. Pour gagner du temps, remplit ton image de bleu puis crée un
carré sur deux en rouge. Au final tu auras divisé par deux le nombre de
imagefilledrectangle.
Je suppose que ceci sera difficilement applicable au script final,
chaque couleur ne se trouvant que sur une ligne si j'ai bien compris.
Il [v]audrait mieux faire au départ un colorallocate pour le rouge et un pour le bleu et ensuite se servir des pointeurs sur ces couleurs pour créer les carrés.
Tu as raison, bien sûr. Ce sera la même chose pour le script prévu, avec dégradé radial : chaque couleur ne devrait être allouée qu'une seule fois.
Par ailleurs, c'est ballot de créer chaque carré alors qu'ils sont jointifs. Pour gagner du temps, remplit ton image de bleu puis crée un carré sur deux en rouge. Au final tu auras divisé par deux le nombre de imagefilledrectangle.
Je suppose que ceci sera difficilement applicable au script final, chaque couleur ne se trouvant que sur une ligne si j'ai bien compris.