<?php function redimImage($source,$destination,$Wmax, $Hmax,$ext) { // recuperation des dimensions de l image Src $size = getimagesize($source); $W = $size[0]; // largeur $H = $size[1]; // hauteur // Calcul du ratio $ratiox = $W / $Wmax; // ratio en largeur $ratioy = $H / $Hmax; // ratio en hauteur $ratio = max($ratiox,$ratioy); // le plus grand $W = $W/$ratio; $H = $H/$ratio; //Creation de la ressource source suivant l'extension switch($ext) { case 'jpg': case 'jpeg': $Src = imagecreatefromjpeg($source); break; case 'png': $Src = imagecreatefrompng($source); break; } // Creation de la ressource destination suivant l'extension switch($ext) { case 'jpg': case 'jpeg': $Dest = imagecreatetruecolor($W,$H); break; case 'png': $Dest = imagecreatetruecolor($W,$H); // fond transparent (pour les png avec transparence) imagesavealpha($Dest, true); $trans_color = imagecolorallocatealpha($Dest, 0, 0, 0, 127); imagefill($Dest, 0, 0, $trans_color); break; } // REDIMENSIONNEMENT+COPIE imagecopyresampled($Dest, $Src, 0, 0, 0, 0, $W, $H, $size[0], $size[1]); // ENREGISTREMENT switch ($ext) { case 'jpg': case 'jpeg': imagejpeg ($Dest,$destination); break; case 'png': imagepng ($Dest,$destination); break; } // liberation des ressources-image imagedestroy ($Src); imagedestroy ($Dest); // si le fichier a bien ete cree if( file_exists($destination)) { return true; } else { return false; } } function cropImage($source,$destination,$Wmax, $Hmax,$ext) { // recuperation des dimensions de l image Src $size = getimagesize($source); $W = $size[0]; // largeur $H = $size[1]; // hauteur //Creation de la ressource source suivant l'extension switch($ext) { case 'jpg': case 'jpeg': $Src = imagecreatefromjpeg($source); break; case 'png': $Src = imagecreatefrompng($source); break; } // Creation de la ressource destination suivant l'extension switch($ext) { case 'jpg': case 'jpeg': $Dest = imagecreatetruecolor($W,$H); break; case 'png': $Dest = imagecreatetruecolor($W,$H); // fond transparent (pour les png avec transparence) imagesavealpha($Dest, true); $trans_color = imagecolorallocatealpha($Dest, 0, 0, 0, 127); imagefill($Dest, 0, 0, $trans_color); break; } // REDIMENSIONNEMENT+COPIE imagecopyresampled($Dest, $Src, 0, 0, 0, 0, $W, $H, $size[0], $size[1]); // ENREGISTREMENT switch ($ext) { case 'jpg': case 'jpeg': imagejpeg ($Dest,$destination); break; case 'png': imagepng ($Dest,$destination); break; } // liberation des ressources-image imagedestroy ($Src); imagedestroy ($Dest); // si le fichier a bien ete cree if( file_exists($destination)) { return true; } else { return false; } } ?>
/** * @params String nom_imageSource,String nom_imageDestination,int largeur_final,int hauteur,final * @return Bool */ if(redimImage('avatar.jpg','avatar2.jpg','150','80','jpg')) { echo "image redimensionner"; } else { echo "image non redimentionner"; }
function cropImage($source,$destination,$W_f, $H_f,$ext) { // recuperation des dimensions de l image Src $size = getimagesize($source); $W_s = $size[0]; // largeur $H_s = $size[1]; // hauteur // crop aux dimensions indiquees if ($W_f != 0 && $H_f != 0) { $W = $W_f; $H = $H_f; } // meme largeur que la source) if ($W_f == 0 && $H_f != 0) { $H = $H_f; $W = $W_s; } // meme hauteur que la source if ($W_f !0 && $H_f 0) { $W = $W_f; $H = $H_s; } // crop "carre" if ($W_f == 0 && $H_f== 0) { if ($W_s >= $H_s) { $W = $H_s; $H = $H_s; } else { $W = $W_s; $H = $W_s; } } //Creation de la ressource source suivant l'extension switch($ext) { case 'jpg': case 'jpeg': $Src = imagecreatefromjpeg($source); break; case 'png': $Src = imagecreatefrompng($source); break; } // Creation de la ressource destination suivant l'extension switch($ext) { case 'jpg': case 'jpeg': $Dest = imagecreatetruecolor($W,$H); // fond blanc $blanc = imagecolorallocate ($Dest, 255, 255, 255); imagefill ($Dest, 0, 0, $blanc); break; case 'png': $Dest = imagecreatetruecolor($W,$H); // fond transparent (pour les png avec transparence) imagesavealpha($Dest, true); $trans_color = imagecolorallocatealpha($Dest, 0, 0, 0, 127); imagefill($Dest, 0, 0, $trans_color); break; } // CENTRAGE en largeur if ($W_f == 0) { if ($H_f == 0 && $W_s < $H_s) { $X_s = 0; $X_d = 0; $W_c = $W_s; } else { $X_s = 0; $X_d = ($W - $W_s) /2; $W_c = $W_s; } } else { if ($W_s > $W) { $X_s = ($W_s - $W) /2; $X_d = 0; $W_c = $W; } else { $X_s = 0; $X_d = ($W - $W_s) /2; $W_c = $W_s; } } // CENTRAGE en hauteur if ($H_f == 0) { if ($W_f == 0 && $H_s < $W_s) { $Y_s = 0; $Y_d = 0; $H_c = $H_s; } else { $Y_s = 0; $Y_d = ($H - $H_s) /2; $H_c= $H_s; } } else { if ($H_s > $H) { $Y_s = ($H_s - $H) /2; $Y_d = 0; $H_c = $H; } else { $Y_s = 0; $Y_d = ($H - $H_s) /2; $H_c = $H_s; } } //Copie imagecopyresampled($Dest, $Src, $X_d, $Y_d, $X_s, $Y_s, $W_c, $H_c, $W_c, $H_c); // ENREGISTREMENT switch ($ext) { case 'jpg': case 'jpeg': imagejpeg ($Dest,$destination); break; case 'png': imagepng ($Dest,$destination); break; } // liberation des ressources-image imagedestroy ($Src); imagedestroy ($Dest); // si le fichier a bien ete cree if( file_exists($destination)) { return true; } else { return false; } }
/** * @params String nom_imageSource,String nom_imageDestination,int largeur_final,int hauteur,final * @return Bool */ //ici on conserve la hauteur if(cropImage('avatar.jpg','avatar2.jpg','150','0','jpg')) { echo "image redimensionner"; } else { echo "image non redimentionner"; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionheader('Content-Type: image/jpg'); est requis sinon je ne peux pas utiliser ta fonction de redimensionnement
Je suis allé sur php.net et il montrait une façon de procéder avec un @ devant la fonction, sans mentionner à quoi ce dernier pouvait bien servir.