Page blanche sur redimensionnement de photos
Posté : 21 sept. 2008, 21:59
Bonjour à tous,
Je réalise un site pour une galerie d'art, et je suis confronté à un probleme que je n'arrive pas à résoudre.
J'ajoute des photos grâce à un formulaire,
Si je prend une image petite mais qui fait 3mo, elle est redimensionner et uploader
Si je prend une image en 2000px par 2000px pour 500ko sa marche plus.
Voici une partie du code pour redimensionner et creer l'image :
Mes différents test me permette de dire que le probleme ce passe sur la fonction :
"imagecreatefromjpeg" a partir de 1800-2000px de largeur.
J'espère et je vous remercie d'avance pour l'aide que vous pourrez me donner.
Ben
Je réalise un site pour une galerie d'art, et je suis confronté à un probleme que je n'arrive pas à résoudre.
J'ajoute des photos grâce à un formulaire,
Si je prend une image petite mais qui fait 3mo, elle est redimensionner et uploader
Si je prend une image en 2000px par 2000px pour 500ko sa marche plus.
Voici une partie du code pour redimensionner et creer l'image :
Code : Tout sélectionner
if(!is_uploaded_file($file_tmp)){
echo "Error: Please select a file to upload!. <br>--<a href=\"$_SERVER[PHP_SELF]\">back</a>";
exit(); //exit the script and don't do anything else.
}
$ext = strrchr($file_name,'.');
$ext = strtolower($ext);
if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
echo "Wrong file extension. <br>--<a href=\"$_SERVER[PHP_SELF]\">back</a>";
exit();
}
//get the file extension.
$getExt = explode ('.', $file_name);
$file_ext = $getExt[count($getExt)-1];
//create a random file name
$rand_name = md5(time());
$rand_name= rand(0,999999999);
//keep image type
if($file_size){
if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){
$new_img = imagecreatefromjpeg($file_tmp);
}
elseif($file_type == "image/x-png" || $file_type == "image/png"){
$new_img = imagecreatefrompng($file_tmp);
}
elseif($file_type == "image/gif"){
$new_img = imagecreatefromgif($file_tmp);
}
list($width, $height) = getimagesize($file_tmp);
$imgratio=$width/$height;
if ($imgratio>1){
$new_width_miniature = $img_miniature_width;
$new_height_miniature = $img_miniature_width/$imgratio;
}
else{
$new_height_miniature = $img_miniature_width;
$new_width_miniature = $img_miniature_width*$imgratio;
}
if (function_exists(imagecreatetruecolor)){
$resized_img_miniature = imagecreatetruecolor($new_width_miniature,$new_height_miniature);
}
else{
die("Error: Please make sure you have GD library ver 2+");
}
imagecopyresized($resized_img_miniature, $new_img, 0, 0, 0, 0, $new_width_miniature, $new_height_miniature, $width, $height);
//save image
ImageJpeg ($resized_img_miniature,"$tableaux_mini/$rand_name.$file_ext");
ImageDestroy ($resized_img_miniature);
ImageDestroy ($new_img);
"imagecreatefromjpeg" a partir de 1800-2000px de largeur.
J'espère et je vous remercie d'avance pour l'aide que vous pourrez me donner.
Ben