Le Monday 14 July 2008 16:58:48 Bulot Grégory, vous avez écrit : > bonjour, > > > j'utilise un gestionnaire de gallery photo qui utilise la fonction gd2 > imagerotate > > j'ai donc vérifier que php5-gd était bien installé, même après redémarrage > apache, phpinfo me confirme bien la présence gd2, mais toujours le message > (dans le flux du navigateur) signalant que la fonction imagerotate n'existe > pas > > en regardant sur le Net chez ubuntu le problème était identique, et que > cela était du fait que le paquet avait repris 'tel quel' depuis debian. > > La seule solution proposée était de recompiler 'à la main' php5-gd avec les > directives qui vont bien. > > 1) y'a-t-il une solution 'plus standart' (qui suis les maj du paquet > php5-gd 2) s'il n'existe que la compilation du paquet avec les options 'qui > vont bien' : quelles sont ces option/directives ? autre solution que la recompilation : "recréer" dans le script la fonction imagerotate (pour des multiples de 90°, ce qui pour des galeries photos est souvent suffisant) : voilà le bout de code que j'utilise (qui doit venir des commentaires de la doc php, de mémoire...) === CODE : if(!function_exists("imagerotate")) { function imagerotate($src_img, $angle) { if (!imageistruecolor($src_img)) { $w = imagesx($src_img); $h = imagesy($src_img); $t_im = imagecreatetruecolor($w,$h); imagecopy($t_im,$src_img,0,0,0,0,$w,$h); $src_img = $t_im; } $src_x = imagesx($src_img); $src_y = imagesy($src_img); if ($angle == 180) { $dest_x = $src_x; $dest_y = $src_y; } elseif ($src_x <= $src_y) { $dest_x = $src_y; $dest_y = $src_x; } elseif ($src_x >= $src_y) { $dest_x = $src_y; $dest_y = $src_x; } $rotate=imagecreatetruecolor($dest_x,$dest_y); imagealphablending($rotate, false); switch ($angle) { case 270: for ($y = 0; $y < ($src_y); $y++) { for ($x = 0; $x < ($src_x); $x++) { $color = imagecolorat($src_img, $x, $y); imagesetpixel($rotate, $dest_x - $y - 1, $x, $color); } } break; case 90: for ($y = 0; $y < ($src_y); $y++) { for ($x = 0; $x < ($src_x); $x++) { $color = imagecolorat($src_img, $x, $y); imagesetpixel($rotate, $y, $dest_y - $x - 1, $color); } } break; case 180: for ($y = 0; $y < ($src_y); $y++) { for ($x = 0; $x < ($src_x); $x++) { $color = imagecolorat($src_img, $x, $y); imagesetpixel($rotate, $dest_x - $x - 1, $dest_y - $y - 1, $color); } } break; default: $rotate = $src_img; }; return $rotate; } } ===/CODE @+ JMB -- JM Barbier - Solidev.org tel : +33 (0) 6 86 14 77 29
Attachment:
signature.asc
Description: This is a digitally signed message part.