bonjour a tous,
voilà j'ai fait un petit script pour faire un redimensionnement d'image qui fonctionne bien seulement il ne traite pour l'instant que les images au format jpg et je souhaiterais qu'il puisse traiter du png et du gif
je vous mets déjà mon code
<?php
$gf = "images/";
$pf = "petite_images/";
$max = 250;
// tester si le dossier de destination existe, sinon le créer
if (!is_dir($pf)) {
mkdir($pf);
}
// lister les images du dossier grand_format
$liste = glob("${gf}*jpg");// => "${gf}*jpg" -> "images/*jpg"
// $liste = array('images/un.jpg','images/deux.jpg','images/trois.jpg','images/quatre.jpg');
$imgs = array();
// pour chaque image du dossier grand_format
foreach ($liste as $imageG) {
$fichier = basename($imageG); // "images/un.jpg" => "un.jpg"
// $echo $ext;
if (!is_file("${pf}${fichier}")) { // "imagesDesti/un.jpg"
// créer une copie de l'image dans le dossier petit_format
reduire($fichier,$gf,$pf,$max);
}
$imgs[] = "<img src='${pf}${fichier}' />";
}
$imgs = join($imgs,"<br/>\n");
// On envoie le HTML
header("content-type:text/html; charset=utf-8");
echo "<html><head><title>réduction</title></head><body>\n$imgs\n</body></html>";
// FINI
// enregistre dans $d_dest le $fichier de $d_src réduit au max à $max
function reduire($fichier, $d_src, $d_dest, $max) {
// Crée une nouvelle image à partir d'un fichier src
$grande_image = imagecreatefromjpeg("${d_src}${fichier}");
// prend les mesures de l'image src
$ls = imagesx($grande_image);
$hs = imagesy($grande_image);
// On établi une regle de traitement --- si largeur src>hauteur de la source alors
if ($ls > $hs) {
$ld = $max;
$hd = $hs / $ls * $max;
} else {
$hd = $max;
$ld = $ls / $hs * $max;
}
/*Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur
survient.en gardant les vrai couleur*/
$petite_image = imagecreatetruecolor($ld,$hd);
imagecopyresampled($petite_image, $grande_image, 0, 0, 0, 0, $ld, $hd, $ls, $hs);
/* Enregistre l'image_gd $petite_image dans le fichier "$d_dest$fichier" */
imagejpeg($petite_image, $d_dest.$fichier);
echo $ext;
}
?>
Voilà donc le code qui fonctionne parfaitement mais uniquement si l'image est en jpg
j'ai lu qu'il existait PATHINFO_EXTENSION
mais comment m'en servir ?
$exts = (pathinfo($liste, PATHINFO_EXTENSION));
devrait me renvoyer un tableau dans $exts si je comprends bien le tableau $liste non ?
comment je peut me servir de ça pour gérer toutes les extension.
$exts=(".",$liste), mais cela ne donne rien
suis-je sur le bon chemin ?
Un coup de pouce serais le bien venu
J'image aussi qu'il faudra un traitement spécial pour chaque type de fichier png; gif du type :
imagecreatefromjpeg
voilà mon problème. Pas sorcier j'imagine pour les programmeur non débutant mais difficile pour moi