|
Aiglon
| Inscrit le: 31 Mai 2006 |
| Messages: 4 |
|
|
 |
| Posté le: Ven 09 Juin 2006, 3:53 pm |
|
 |
 |
 |
 |
bonjour,
j'ai essayé de reécrire un script (à partir d'un autre script déja existant) pour créer des images miniatures proportionnelles à une image uploadé mais apparemment le script ne fonctionne pas (il me renvoit des messages d'erreur. !)
<?php // Création de miniature
$max_width=220;
$max_height=220;
$repertoire_destination="miniature/";
$prefixe="mini-";
$photo_name = basename($nom_photo);
function miniature($nom_photo)
{
/*on ouvre le fichier*/
$file = fopen($nom_photo,'r');
/*On recupere le nom de l'image*/
$miniature = $prefixe.$photo_name;
/*getimagesize() renvoie FALSE si le fichier n'est pas une image*/
if (false !== list($largeur_orig,$hauteur_orig,$extension) = getimagesize($nom_photo))
{
/*On récupère l'extension de l'image*/
$extension_img = substr(strchr($nom_photo,'.'),1);
$type_img = imagecreatefromjpeg($nom_photo);
/*On verifie la taille*/
if(($largeur_orig > $max_width) || ($hauteur_orig > $max_height))
{
// si l'image est trop large ou trop haute
if ($largeur_orig > $hauteur_orig)
{
// image plus large que haute
$hauteur = round(($hauteur_orig * $max_width) / $largeur_orig);
$largeur = $max_width;
}
else
{
// image plus haute que large
$hauteur = $max_height;
$largeur = round(($largeur_orig * $max_height) / $hauteur_orig);
}
}
else
{
$largeur = $largeur_orig;
$hauteur = $hauteur_orig;
}
/*On créer la miniature*/
$src = imagecreatetruecolor($largeur,$hauteur);
imagecopyresized($src,$type_img,0,0,0,0,$largeur,$hauteur,$largeur_orig,$hauteur_orig);
/*On sauvegarde la miniature*/
imagejpeg($src, $repertoire_destination.$nom);
/*On libere la memoire utilisée par cette image.*/
imagedestroy($src);
}
else
{
$message = 'Erreur : Le fichier n\'existe pas !';
}
}
miniature($nom_photo);
echo "---------";
echo "$photo_name";
}
?> |
le script de l'upload de l'image (qui lui fonctionne à merveille) avec le script de la création de miniature :
<?php // Script d'upload
// On définie les variables
$maxsize = 102400;
$maxwidth = 1024;
$maxheight = 768;
$extensions_valides = array( 'jpg' , 'jpeg' , 'JPG', 'JPEG', 'gif' , 'GIF' , 'png' , 'PNG' );
$extension_upload = substr( strrchr($_FILES['photo_1']['name'], '.') ,1);
$image_sizes = getimagesize($_FILES['photo_1']['tmp_name']);
// On vérifie si le fichier est transferé
if ($_FILES['photo_1']['error'] > 0)
{
$erreur = "Erreur lors du téléchargement de la photo";
}
// On vérifie le poids du fichier
elseif ($_FILES['photo_1']['size'] > $maxsize)
{
$erreur = "Le poids de la photo est trop lourd";
}
// On vérifie les extentions valides
elseif ( in_array($extension_upload,$extensions_valides) )
{
echo "<br />";
}
// On vérifie la taille de l'image
elseif ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
{
$erreur = "La taille de la photo est trop grande";
}
// On déplace le fichier vers le dossier final
$pre = "img/";
$post = ".jpg";
$nom_photo = microtime();
$nom_photo = $pre.str_replace(' ','',$nom_photo).$post;
$resultat = move_uploaded_file($_FILES['photo_1']['tmp_name'],$nom_photo);
if ($resultat)
{
// chagement de chmod
chmod($nom_photo, 0755 );
echo "$nom_photo";
// Création de miniature
$max_width=220;
$max_height=220;
$repertoire_destination="miniature/";
$prefixe="mini-";
$photo_name = basename($nom_photo);
function miniature($nom_photo)
{
/*on ouvre le fichier*/
$file = fopen($nom_photo,'r');
/*On recupere le nom de l'image*/
$miniature = $prefixe.$photo_name;
/*getimagesize() renvoie FALSE si le fichier n'est pas une image*/
if (false !== list($largeur_orig,$hauteur_orig,$extension) = getimagesize($nom_photo))
{
/*On récupère l'extension de l'image*/
$extension_img = substr(strchr($nom_photo,'.'),1);
$type_img = imagecreatefromjpeg($nom_photo);
/*On verifie la taille*/
if(($largeur_orig > $max_width) || ($hauteur_orig > $max_height))
{
// si l'image est trop large ou trop haute
if ($largeur_orig > $hauteur_orig)
{
// image plus large que haute
$hauteur = round(($hauteur_orig * $max_width) / $largeur_orig);
$largeur = $max_width;
}
else
{
// image plus haute que large
$hauteur = $max_height;
$largeur = round(($largeur_orig * $max_height) / $hauteur_orig);
}
}
else
{
$largeur = $largeur_orig;
$hauteur = $hauteur_orig;
}
/*On créer la miniature*/
$src = imagecreatetruecolor($largeur,$hauteur);
imagecopyresized($src,$type_img,0,0,0,0,$largeur,$hauteur,$largeur_orig,$hauteur_orig);
/*On sauvegarde la miniature*/
imagejpeg($src, $repertoire_destination.$nom);
/*On libere la memoire utilisée par cette image.*/
imagedestroy($src);
}
else
{
$message = 'Erreur : Le fichier n\'existe pas !';
}
}
miniature($nom_photo);
echo "---------";
echo "$photo_name ";
} ?> |
Les messages d'erreur :
Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: in /home/www/monsite/www/guide/proposition-restaurant-ok.php on line 133
Warning: imagecreatefromjpeg(): 'img/0.350989001149839085.jpg' is not a valid JPEG file in /home/www/monsite/www/guide/proposition-restaurant-ok.php on line 133
Warning: imagecreatetruecolor(): Invalid image dimensions in /home/www/monsite/www/guide/proposition-restaurant-ok.php on line 159
Warning: imagecopyresized(): supplied argument is not a valid Image resource in /home/www/monsite/www/guide/proposition-restaurant-ok.php on line 160
Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/www/monsite/www/guide/proposition-restaurant-ok.php on line 163
Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/www/monsite/www/guide/proposition-restaurant-ok.php on line 166
merci à tous ceux qui prendrons le temps de m'aider 
|