dvanhee
2008-04-05 19:45:58 UTC
Bonjour à tous
Voilà mon problème : je souhaite copié sur une image de fond (rose des
vents) une première image (aiguille) qui a subi une rotation.
J'obtiens bien ce que je veux en local. Mais quand je poste le tout
sur le serveur de Free, c'est la catastrophe. L'aiguille apparaît sur
un fond noir (rectangle résultant de la rotation).
sur le serveur free : http://d.vanhee.free.fr/cartographe/rotate.php?cap=45
Le code n'a bien sur pas changé.
Seules les configurations serveurs diffèrent.
local : PHP 5.2.5 GD 2.0.34
Free : PHP 4.4.3 GD 2.0.28
Mon objectif : trouver une solution pour que cela fonctionne pour les
2 configurations. Malgré de nombreux essais je ne suis pas parvenu à
obtenir de résultats satisfaisants.
Merci d'avance pour vos idées.
le code :
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {$vars = $_POST;} else if
($_SERVER["REQUEST_METHOD"] == "GET") {$vars = $_GET;}
$cap_a_dessiner = $vars[cap];
$src_img = imagecreatefrompng('images/rose/fleche3.png');
$rose = imagecreatefrompng('images/rose/rose3.png');
$srcsize = getimagesize('images/rose/fleche3.png');
$dest_x = $srcsize[0];
$dest_y = ($srcsize[0] / $srcsize[0]) * $srcsize[1];
$dst_img = imagecreatetruecolor($dest_x, $dest_y);
imagealphablending( $dst_img, false);
imagesavealpha($dst_img, true);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_x, $dest_y,
$srcsize[0], $srcsize[1]);
imagedestroy($src_img);
$degrees = 360 - $cap_a_dessiner;
$rotate = imagerotate($dst_img, $degrees, -1);
imagedestroy($dst_img);
// taille image ratate : imagesx et imagesy
$rosesize = getimagesize('images/rose/rose3.png');
$x = ($rosesize[0] - imagesx($rotate))/2;
$y = ($rosesize[1] - imagesy($rotate))/2;
imagecopy($rose, $rotate, $x,$y,0,0, imagesx($rotate),
imagesy($rotate));
header('Content-type: image/png');
imagepng($rose);
imagedestroy($rose);
?>
Domimnique
------------------------------------------------------------------------
<***@free.frr> - <http://d.vanhee.free.fr/>
"Les utopies sont réalisables. La vie marche vers les utopies"
Voilà mon problème : je souhaite copié sur une image de fond (rose des
vents) une première image (aiguille) qui a subi une rotation.
J'obtiens bien ce que je veux en local. Mais quand je poste le tout
sur le serveur de Free, c'est la catastrophe. L'aiguille apparaît sur
un fond noir (rectangle résultant de la rotation).
sur le serveur free : http://d.vanhee.free.fr/cartographe/rotate.php?cap=45
Le code n'a bien sur pas changé.
Seules les configurations serveurs diffèrent.
local : PHP 5.2.5 GD 2.0.34
Free : PHP 4.4.3 GD 2.0.28
Mon objectif : trouver une solution pour que cela fonctionne pour les
2 configurations. Malgré de nombreux essais je ne suis pas parvenu à
obtenir de résultats satisfaisants.
Merci d'avance pour vos idées.
le code :
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {$vars = $_POST;} else if
($_SERVER["REQUEST_METHOD"] == "GET") {$vars = $_GET;}
$cap_a_dessiner = $vars[cap];
$src_img = imagecreatefrompng('images/rose/fleche3.png');
$rose = imagecreatefrompng('images/rose/rose3.png');
$srcsize = getimagesize('images/rose/fleche3.png');
$dest_x = $srcsize[0];
$dest_y = ($srcsize[0] / $srcsize[0]) * $srcsize[1];
$dst_img = imagecreatetruecolor($dest_x, $dest_y);
imagealphablending( $dst_img, false);
imagesavealpha($dst_img, true);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_x, $dest_y,
$srcsize[0], $srcsize[1]);
imagedestroy($src_img);
$degrees = 360 - $cap_a_dessiner;
$rotate = imagerotate($dst_img, $degrees, -1);
imagedestroy($dst_img);
// taille image ratate : imagesx et imagesy
$rosesize = getimagesize('images/rose/rose3.png');
$x = ($rosesize[0] - imagesx($rotate))/2;
$y = ($rosesize[1] - imagesy($rotate))/2;
imagecopy($rose, $rotate, $x,$y,0,0, imagesx($rotate),
imagesy($rotate));
header('Content-type: image/png');
imagepng($rose);
imagedestroy($rose);
?>
Domimnique
------------------------------------------------------------------------
<***@free.frr> - <http://d.vanhee.free.fr/>
"Les utopies sont réalisables. La vie marche vers les utopies"