<?
/*
Chemin d'accès (local) à l'image d'origine
*/ $i = $_GET['i'];
/*
Qualité de la miniature (0 - 100%)
*/
$q = $_GET['q']; $largeurmax = $_GET['lm']; $hauteurmax = $_GET['hm'];
/*
Règle de redimensionnement
- dill=<non défini> : ni la largeur, ni la hauteur maximale ne seront dépassées
- dill=1 : la largeur maximale ne sera jamais dépassée
- dill=2 : la hauteur maximale ne sera jamais dépassée
- dill=3 : format d'origine
*/ $dill = $_GET['dill'];
/*
Si la qualité n'a pas été définie, sa valeur est fixée à 75%
*/
if( !$q ) $q=75;
/*
Si la largeur ou la hauteur maximum de la miniature n'ont pas été définis, leur valeur est fixée à 160 (pixels).
*/ if( !$largeurmax ) $largeurmax = 160; if( !$hauteurmax ) $hauteurmax = 160;
/*
Lecture du type de l'image d'origine
*/ $exif = exif_imagetype( $i ); /*
Écriture de l'entête de l'image
*/ header( 'Content-type: '.image_type_to_mime_type( $exif ) ); /*
Ouverture du bitmap original
*/ if( $exif == IMAGETYPE_JPEG ) { $im = imagecreatefromjpeg( $i ); } elseif( $exif == IMAGETYPE_GIF ) { $im = imagecreatefromgif( $i ); } elseif( $exif == IMAGETYPE_PNG ) { $im = imagecreatefrompng( $i ); } elseif( $exif == IMAGETYPE_WBMP ) { $im = imagecreatefromwbmp( $i ); } /*
Lecture des dimensions :
- largeur : $im_w
- hauteur : $im_h
*/ $im_w = imagesx( $im ); $im_h = imagesy( $im ); /*
Calcul du ratio pour ne pas dépasser la largeur maximale
*/ if( $dill != 2 && $im_w > $largeurmax ) { $ratio = $largeurmax / $im_w; }
else
{
$ratio = 1;
} /*
Calcul du ratio pour ne pas dépasser la hauteur maximale
*/ if( $dill != 1 && $im_h > ( $hauteurmax * $ratio ) ) { $ratio = $hauteurmax / $im_h ; }
/*
Cas où on ne veux pas redimensionner l'image
*/
if( $dill == 3 ) { $ratio = 1; } /*
Définition des dimensions de la miniature :
- largeur : $im2_w
- hauteur : $im2_h
*/ $im2_w = floor( $im_w * $ratio ); $im2_h = floor( $im_h * $ratio ); /*
Création de l'espace pour l'image
*/ $im2 = imagecreatetruecolor( $im2_w, $im2_h ); /*
Copie l'image originale vers la miniature
*/ imagecopyresampled( $im2, $im, 0, 0, 0, 0, $im2_w, $im2_h, $im_w, $im_h ); /*
Afficher l'image
*/ if( $exif == IMAGETYPE_JPEG ) { imagejpeg( $im2, NULL, $q ); } elseif( $exif == IMAGETYPE_GIF ) { imagegif( $im2 ); } elseif( $exif == IMAGETYPE_PNG ) { imagepng( $im2 ); } elseif( $exif == IMAGETYPE_WBMP ) { imagewbmp( $im2 ); } /*
Libère la mémoire
*/ imagedestroy( $im2 ); imagedestroy( $im ); ?>
|