<?php
// ------------------------------------------------------------------------- //
// Permet de réduire une image en gardant la hauteur proportionnelle à la //
// largeur. L'image ne se réduit que si elle dépasse les limites de hauteur //
// ou de largeur indiquées. Au final l'image est enregistrée sous un nom //
// aléatoire (et empêche l'écrasement). //
// ------------------------------------------------------------------------- //
// Auteur: NobodX //
// Email: icecube@fr.fm //
// Web: http://icecube.fr.fm/ //
// ------------------------------------------------------------------------- //
/* RatioResizeImg avec (height % width) par NobodX */
/* Suivant la fonction ResizeGif de tjhunter */
function RatioResizeImg( $image, $newWidth, $newHeight){
// détéction du type de l'image
eregi("(...)$",$image,$regs); $type = $regs[1];
switch($type){
case "gif": $srcImage = @imagecreatefromgif( $image ); break;
case "jpg": $srcImage = @imagecreatefromjpeg( $image ); break;
case "png": $srcImage = @imagecreatefrompng( $image ); break;
default : unset($type); break;}
if($srcImage){
// hauteurs/largeurs
$srcWidth = imagesx( $srcImage );
$srcHeight = imagesy( $srcImage );
$ratioWidth = $srcWidth/$newWidth;
$ratioHeight = $srcHeight/$newHeight;
// taille maximale dépassée ?
if (($ratioWidth > 1) || ($ratioHeight > 1)) {
if( $ratioWidth < $ratioHeight){
$destWidth = $srcWidth/$ratioHeight;
$destHeight = $newHeight;
}else{
$destWidth = $newWidth;
$destHeight = $srcHeight/$ratioWidth;}
}else {$destWidth = $srcWidth; $destHeight = $srcHeight;}
// resize
$destImage = imagecreate( $destWidth, $destHeight);
imagecopyresized( $destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight,
$srcWidth, $srcHeight );
// nom du fichier
$dest_file = random($dest_file,$type);
while (file_exists("$dest_file" ))
{$dest_file = random($dest_file,$type);}
// création et sauvegarde de l'image finale
/* Ici on peut éditer le chemin de sauvegarde ($dest_file) */
switch($type){
case "gif": @imagegif($destImage, $dest_file); break;
case "jpg": @imagejpeg($destImage, $dest_file); break;
case "png": @imagepng($destImage, $dest_file); break;}
// libère la mémoire
imagedestroy( $srcImage );
imagedestroy( $destImage );
// renvoit l'URL de l'image
return $dest_file;}
// erreur
else {echo "Image inexistante ou aucun support ";
if ($type){echo "pour le format $type";}
else {echo "pour ce format de fichier";}
exit();}}
// nom de fichier suivant la date + nb aléatoire
function random($dest_file,$type){
srand ((double) microtime() * 1000);
$dest_file = date("dhis" );
$dest_file .= rand();
$dest_file .= ".$type";
return $dest_file;}
// Execution de la fonction
// RatioResizeImg("chemin", largeur, hauteur)
$imgurl = RatioResizeImg("1.gif",100,50);
echo "<img src=\"$imgurl\">";
?>
Help je suis super nul en php. j'ai inséré ce code dans mon index.php et j'obtien ca "Image inexistante ou aucun support pour le format gif" il faut surement modifier kelke chose dans le code ou crée des repertoirs specifiques ?