Fonction de miniaturisation d'image jpeg gif png

Description

Si jamais vous avez besoin de créer des miniatures, par exemple pour un espace membre pour mettre des avatars (pas besoin de conserver sur la photo à 2Mo!), une galerie photo voila une fonction qui permet de générer des miniatures a partir de gif, jpeg, png.

Ce code n'est plus maintenu.

Cédric Strubel

Source / Exemple :


<?php
       /*utilisation de la fonction :
       $path=chemin d'accès au dossier contenant la photo
       $fichierSource=nom de la photo
       $grand=taille du plus grand coté (hauteur pour les portraits, largeur pour les paysages)
       $destination=dossier de destination de la photo, par rapport à l'emplacement de la fonction */
       
       
       function thumb($path,$fichierSource,$grand,$destination){
              
              $ombre=$grand / 20;
              
              //teste le format de l'image et crée l'image concerné
              
              $image_size=getimagesize($path.$fichierSource );
              
              switch ( $image_size[2] ) {
                     
                     case 1 :
                     $source = ImageCreateFromGif($path.$fichierSource);
                     $mime_photo='image/gif';
                     break;
                     case 2 :
                     $source = ImageCreateFromJPEG($path.$fichierSource);
                     $mime_photo='image/jpeg';
                     break;            
                     case 3 :  
                     $source = ImageCreateFromPNG($path.$fichierSource);
                     $mime_photo='image/png';
                     break;        
                     default:
                     echo '<br />Erreur de format image <strong>'.$fichierSource.'</strong>. Seuls les formats jpeg, gif et png sont supportés';
                     return false;
                     
              }
              
              $largeurSource = imagesx($source);
              $hauteurSource = imagesy($source);
              
              
              //calcul le rapport entre largeur et longueur...
              $rapport_dim= $largeurSource / $hauteurSource;
              
              
              //test si image en portrait ou en paysage
              if ( $largeurSource >= $hauteurSource ) {
                     $largeurDestination = $grand;
                     $hauteurDestination = $largeurDestination / $rapport_dim;
              }
              else {
                     $hauteurDestination = $grand;
                     $largeurDestination = $hauteurDestination * $rapport_dim;
              }
              
              
              //crée l'image ( taille de l'imange source + taille de l'ombre)         
              $im = ImageCreateTrueColor ($largeurDestination + $ombre, $hauteurDestination + $ombre)
              or die ('<br />Erreur lors de la création image <strong>'.$fichierSource.'</strong>');
              
              
              //rempli le fond de blanc         
              $blanc=ImageColorAllocate ($im, 255, 255, 255);
              ImageFill($im, 0, 0, $blanc);  
              ImageColorTransparent ($im, $blanc);
              
              
              
              //crée l'ombre           
              $col = ImageColorAllocate ($im, 130 ,130 ,130 );        
              
              ImageFilledRectangle ($im, $ombre, $ombre, $largeurDestination + $ombre, $hauteurDestination + $ombre, $col);
              

              //ajoute par dessus l'image source miniaturisée
              ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);

              $noir=ImageColorAllocate ($im, 0, 0, 0);

              ImageRectangle($im,0,0, $largeurDestination, $hauteurDestination, $noir);

              //crée la miniature
              switch ( $mime_photo) {
                     
                     case 'image/jpeg' :

                     ImageJpeg ($im, $destination.'/'.$fichierSource);
                     break;
                     
                     case 'image/gif' :
                     
                     ImageGif ($im, $destination.'/'.$fichierSource);
                     break;
                     
                     case 'image/png' :
                     
                     ImagePng ($im, $destination.'/'.$fichierSource);
                     break;     
                     
                     
              }
              
              return true;
       }
       
       
       $file='img.jpeg';
       
       
       
       if(!is_file('./thumb/'.$file)) {
              
              thumb('./',$file,100,'./thumb/') or die ('<br />La miniaturisation de <strong>'.$file.'</strong> a échoué...');
              echo '<img src="./thumb/',$file,'" />';
              
       }
       
?>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.