z0rglub | voici la fonction que j'utilise, le coeur étant les lignes Partie 1 et 2, faisant de belles miniatures ou moches !
Code :
- function RatioResizeImg( $image, $newWidth, $newHeight, $path)
- {
- // chemin complet de l'image :
- $chemin = $path.$image;
- echo $chemin."<br />";
- // détéction du type de l'image
- eregi("(...)$",$chemin,$regs);
- $type = $regs[1];
- switch( $type )
- {
- case "gif": $srcImage = @imagecreatefromgif( $chemin ); break;
- case "jpg": $srcImage = @imagecreatefromjpeg( $chemin ); break;
- case "png": $srcImage = @imagecreatefrompng( $chemin ); 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;
- }
- // selon votre version de GD installée sur le serveur hébergeur,
- // utilisez la partie 1 ou 2 en retirant ou
- // rajoutant les caractères de commentaire "//"
- // Partie 1 : GD 2.0 ou supérieur, résultat très bons
- $destImage = imagecreatetruecolor( $destWidth, $destHeight);
- imagecopyresampled( $destImage, $srcImage, 0, 0, 0, 0, $destWidth,$destHeight,$srcWidth,$srcHeight );
- // Partie 2 : GD inférieur à 2, résultat très moyens
- //$destImage = imagecreate( $destWidth, $destHeight);
- //imagecopyresized( $destImage, $srcImage, 0, 0, 0, 0, $destWidth,$destHeight,$srcWidth,$srcHeight );
- if( !is_dir( $path."thumbnail" ) )
- {
- mkdir( $path."thumbnail", 0777 );
- }
- $dest_file = $path."thumbnail/TN-".$image;
- // 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();
- }
- }
|
---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
|