<<Retour à l'accueil

 
 
  [PHP] Générateur de miniatures

 
Ces quelques lignes de code vous seront pratiques lorsque vous souhaiterez créer un album photo, ou toute autre application qui y ressemble sur le web.

> Exemples (dans une page HTML):

<img src="miniature.php?i=images/image.jpg&hm=180&dill=2">

"miniature.php" est le fichier contenant le code ci-dessous.
Ceci affichera l'image "images/image.jpg" avec une hauteur de 180 pixels.

Même chose, mais pour afficher la miniature dans une autre fenêtre :

<a href="miniature.php?i=images/image.jpg&hm=180&dill=2" target=_blank>Texte du lien</a>

**Ce code est utilisé pour redimensionner mes fonds d'écran**
<?
/*
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 != && $im_w $largeurmax )
{
    
$ratio $largeurmax $im_w;
}
else
{
    
$ratio 1;
}
/*
Calcul du ratio pour ne pas dépasser la hauteur maximale
*/
if( $dill != && $im_h > ( $hauteurmax $ratio ) )
{
    
$ratio $hauteurmax $im_h ;
}
/*
Cas où on ne veux pas redimensionner l'image
*/
if( $dill == )
{
    
$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$im0000$im2_w$im2_h$im_w$im_h );
/*
Afficher l'image
*/
if( $exif == IMAGETYPE_JPEG )
{
    
imagejpeg$im2NULL$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 );
?>
Télécharger le ZIP contenant la source et la description