par
stakanof » 09 mai 2008, 19:14
Bonjour
Je me suis fais une fonction pour redimensionner une image, je fais une miniature, et une grande image et j'efface le fichier d'origine ( fichier que j'ai uploadé)
// Fonction qui permet de reduire une photo du repertoire apload-images-velos
// on enregistre une grande version dans apload en qualite 50
// on enregistre une miniature dans apload-mini en qualite 25
function resize_image($srcfilename, $newname)
{
echo 'bonjour','<br />';
$chemin_origine = '../apload-images-velos/' . $srcfilename ;
$image = imagecreatefromjpeg($chemin_origine); // on cree l'image à partie de l'origine
$size = 0.2; // coefficient de reduction
list($width, $height) = getimagesize($chemin_origine); // retourne un array --> list // presentation
$final_width = $width * $size; //largeur finale
$final_height = $height * $size; // hauteur finale
// Resizing the Image
$tn = imagecreatetruecolor($final_width, $final_height);
imagecopyresampled($tn, $image, 0, 0, 0, 0, $final_width, $final_height, $width, $height); // on reduit l'image'
//------------------
//Enregistrement de la grande image
$chemin_apload = '../apload/' . $newname ;
$reponse1 = imagejpeg($image, $chemin_apload , 50) ; // on enregistre l'image 50 correspond à la qualité
if ($reponse1){
echo 'ficihier apload: OK','<br />';
}
//Enregistrement de la petite image
$chemin_apload_mini = '../apload-mini/' . $newname ;
$reponse2 = imagejpeg($tn, $chemin_apload_mini, 50) ; // on enregistre l'image miniature'
if ($reponse2){
echo 'ficihier apload-mini: OK','<br />';
}
imageDestroy($image);
imageDestroy($tn);
unlink($chemin_origine); //je détruis le fichier original uploader
echo "image resizée", '<br />';
}
$upload = move_uploaded_file($_FILES['fichier']['tmp_name'], $dest_dossier . $dest_fichier);
if($upload){ // si le fichier est bien uploader.
echo 'upload: ok','<br />';
resize_image( $dest_fichier, $dest_fichier); // je reduit l'image et l'enregistre dans apload et apload-mini et efface dans apload-image-velos
}
Le Pb : quand je fais: resize_image( $dest_fichier, $dest_fichier);
Parfois l'image n'est pas réduite, en clair resize_image n'a pas fait son travail, comme puis je modifier mon code pour être sur que l'image a été redimensionnée ?
Bonjour
Je me suis fais une fonction pour redimensionner une image, je fais une miniature, et une grande image et j'efface le fichier d'origine ( fichier que j'ai uploadé)
[php]
// Fonction qui permet de reduire une photo du repertoire apload-images-velos
// on enregistre une grande version dans apload en qualite 50
// on enregistre une miniature dans apload-mini en qualite 25
function resize_image($srcfilename, $newname)
{
echo 'bonjour','<br />';
$chemin_origine = '../apload-images-velos/' . $srcfilename ;
$image = imagecreatefromjpeg($chemin_origine); // on cree l'image à partie de l'origine
$size = 0.2; // coefficient de reduction
list($width, $height) = getimagesize($chemin_origine); // retourne un array --> list // presentation
$final_width = $width * $size; //largeur finale
$final_height = $height * $size; // hauteur finale
// Resizing the Image
$tn = imagecreatetruecolor($final_width, $final_height);
imagecopyresampled($tn, $image, 0, 0, 0, 0, $final_width, $final_height, $width, $height); // on reduit l'image'
//------------------
//Enregistrement de la grande image
$chemin_apload = '../apload/' . $newname ;
$reponse1 = imagejpeg($image, $chemin_apload , 50) ; // on enregistre l'image 50 correspond à la qualité
if ($reponse1){
echo 'ficihier apload: OK','<br />';
}
//Enregistrement de la petite image
$chemin_apload_mini = '../apload-mini/' . $newname ;
$reponse2 = imagejpeg($tn, $chemin_apload_mini, 50) ; // on enregistre l'image miniature'
if ($reponse2){
echo 'ficihier apload-mini: OK','<br />';
}
imageDestroy($image);
imageDestroy($tn);
unlink($chemin_origine); //je détruis le fichier original uploader
echo "image resizée", '<br />';
}
[/php]
[php]
$upload = move_uploaded_file($_FILES['fichier']['tmp_name'], $dest_dossier . $dest_fichier);
if($upload){ // si le fichier est bien uploader.
echo 'upload: ok','<br />';
resize_image( $dest_fichier, $dest_fichier); // je reduit l'image et l'enregistre dans apload et apload-mini et efface dans apload-image-velos
}
[/php]
Le Pb : quand je fais: resize_image( $dest_fichier, $dest_fichier);
Parfois l'image n'est pas réduite, en clair resize_image n'a pas fait son travail, comme puis je modifier mon code pour être sur que l'image a été redimensionnée ?