Bonjour à tous,
Je me tourne vers vous car malgré mes recherches, je ne trouve pas de solution à mon problème.
J'ai recours à une fonction pour redimensionner des photos uploadées, à partir de la fonction imageCopyResampled. Tout se passe correctement en local ; par contre, une fois sur le serveur de Free, il semble bien que si la taille en pixels de l'image importée est trop grande, le redimensionnement échoue. En effet, lorsque j'envoie une image de 2560x1920 pix, pas de problème et l'image est redimensionné en quelques secondes ; par contre lorsque je tente la même chose avec une image de 3264x2448 pix, alors là, aucune image redimensionnée n'est générée (alors que tout se passe correctement en local) et la fonction n'aboutie jamais.
J'ai essayé de compresser davantage l'image sans en réduire les dimensions mais sans succès ; il semble que ce soit vraiment le nombre de pixels qui composent l'image qui pose problème.
J'ai utilisé la fonction imageCopyResized à la place de imageCopyResampled mais sans plus de succès.
Existe-t'il une autre fonction PHP ou toute autre solution qui me permettrait d'importer des images sans avoir à les réduire au préalable ?
Merci à tous de votre participation.
_________________________________________________________________________________________________
Ci-dessous la fonction utilisée : (c) Slooz
$img = imagecreatefromjpeg ($this->appFolder () . "../bucket/$file");
list($img_width, $img_height, $img_type, $img_attr) = getimagesize($this->appFolder () . "../bucket/$file");
if ($img_width / $img_height > $settings["ImportWidth"] / $settings["ImportHeight"]) {
$new_height = $img_height * $settings["ImportWidth"] / $img_width;
$new_width = $settings["ImportWidth"];
} else {
$new_width = $img_width * $settings["ImportHeight"] / $img_height;
$new_height = $settings["ImportHeight"];
}
$nimg = imagecreatetruecolor ($new_width, $new_height);
imagecopyresampled ($nimg, $img, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height);
imagejpeg ($nimg, $this->imgFolder () . $destfile, $settings["ImportQuality"]);
imagedestroy ($nimg);