Voici une fonction qui redimensionne une image en fonction d'une zone de réception préalablement définie.
Elle tourne parfaitement.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function redimage($img_src,$dst_w,$dst_h) {
// Lit les dimensions de l'image
$size = GetImageSize($img_src);
$src_w = $size[0]; $src_h = $size[1];
// Teste les dimensions tenant dans la zone
$test_h = round(($dst_w / $src_w) * $src_h);
$test_w = round(($dst_h / $src_h) * $src_w);
// Si Height final non précisé (0)
if(!$dst_h) $dst_h = $test_h;
// Sinon si Width final non précisé (0)
elseif(!$dst_w) $dst_w = $test_w;
// Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$dst_h) $dst_w = $test_w;
else $dst_h = $test_h;
// Affiche les dimensions optimales
echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
} |
Si je fais cet appel,
<IMG SRC="x.jpg" <?php redimage("x.jpg",50,50)?> />
Alors tout va bien ...
Mais si mon image est sur un serveur externe
<IMG SRC="http://mon_serveur/x.jpg" <?php redimage("http://mon_serveur/x.jpg",50,50)?> />
Alors problème.
Pourtant
<IMG SRC="http://mon_serveur/x.jpg" />
fonctionne bien.
C'est
GetImageSize("http://mon_serveur/x.jpg")
qui pose problème. Comment faire ?
Partager