par
mars77 » 26 mars 2010, 21:52
Bonjour à tous,
J'ai un problème avec ma fonction pour réduire la taille de mes photos. J'ai tout le temps le même message d'erreur suivant :
erreur lors de la création de l'image
Le problème viens au moment de la création de l'image, mais je ne sais pas pourquoi ?
Voilà ma fonction:
<?php
//fonction pour modifier la taille des grandes images.
function taille_grand_photo($dir) {
//On ouvre le dossier images
$handle = opendir($dir);
//On parcoure chaque élément du dossier
while ($file1 = readdir($handle))
{
//Si les fichiers sont des images
if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file1))
{
$listef = $file1;
//On calcule la largeur et la hauteur de l'image aléatoire
$size = getimagesize($dir."/".$listef);
//Largeur maximale de l'image pour la création des miniatures
$largeur_maxi = 750;
//Si la largeur dépasse la limite autorisée...
if ($size[0] > $largeur_maxi)
{
//...la nouvelle largeur est égale à la limite à ne pas dépasser
$width = $largeur_maxi;
//La largeur d'origine divisée par la largeur limitée (on obtient un chiffre qui sert à faire la même proportion pour la hauteur)
$theight = ($size[0]/$largeur_maxi);
//La hauteur originale est divisée par le chiffre obtenu précédemment afin que l'image conserve les mêmes proportions que l'originale (mais en mode vignette)
$height = ($size[1]/$theight);
}
else
{
//Sinon on garde la taille originale
$width = $size[0]; $height = $size[1];
}
// on crée une image vide
$im=@imageCreateTrueColor($width,$height)or die ("erreur lors de la création de l'image");
// on lit l'image existante
$source=imagecreatefromstring(file_get_contents($dir."/".$file1));
// Redimensionne l'image
imagecopyresampled( $im,$source,0, 0, 0, 0,$width,$height,$size[0],$size[1]);
// Enregistre la photo à la nouvelle dimention
imageJpeg($im,($dir."/".$file1));
// Détruit les ressources temporaires crées
imagedestroy($im);
imagedestroy($source);
}
}
//On ferme le dossier
closedir($handle);
}
taille_grand_photo('grand/
Merci a celui qui pourra m'aider.
Bonjour à tous,
J'ai un problème avec ma fonction pour réduire la taille de mes photos. J'ai tout le temps le même message d'erreur suivant :
[php]erreur lors de la création de l'image[/php]
Le problème viens au moment de la création de l'image, mais je ne sais pas pourquoi ?
Voilà ma fonction: [php]<?php
//fonction pour modifier la taille des grandes images.
function taille_grand_photo($dir) {
//On ouvre le dossier images
$handle = opendir($dir);
//On parcoure chaque élément du dossier
while ($file1 = readdir($handle))
{
//Si les fichiers sont des images
if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file1))
{
$listef = $file1;
//On calcule la largeur et la hauteur de l'image aléatoire
$size = getimagesize($dir."/".$listef);
//Largeur maximale de l'image pour la création des miniatures
$largeur_maxi = 750;
//Si la largeur dépasse la limite autorisée...
if ($size[0] > $largeur_maxi)
{
//...la nouvelle largeur est égale à la limite à ne pas dépasser
$width = $largeur_maxi;
//La largeur d'origine divisée par la largeur limitée (on obtient un chiffre qui sert à faire la même proportion pour la hauteur)
$theight = ($size[0]/$largeur_maxi);
//La hauteur originale est divisée par le chiffre obtenu précédemment afin que l'image conserve les mêmes proportions que l'originale (mais en mode vignette)
$height = ($size[1]/$theight);
}
else
{
//Sinon on garde la taille originale
$width = $size[0]; $height = $size[1];
}
// on crée une image vide
$im=@imageCreateTrueColor($width,$height)or die ("erreur lors de la création de l'image");
// on lit l'image existante
$source=imagecreatefromstring(file_get_contents($dir."/".$file1));
// Redimensionne l'image
imagecopyresampled( $im,$source,0, 0, 0, 0,$width,$height,$size[0],$size[1]);
// Enregistre la photo à la nouvelle dimention
imageJpeg($im,($dir."/".$file1));
// Détruit les ressources temporaires crées
imagedestroy($im);
imagedestroy($source);
}
}
//On ferme le dossier
closedir($handle);
}
taille_grand_photo('grand/[/php]
Merci a celui qui pourra m'aider.