[PHP] créer des miniatures de bonne qualité !

créer des miniatures de bonne qualité ! [PHP] - PHP - Programmation

Marsh Posté le 01-07-2002 à 15:34:58    

salut,
pour mon appli de galerie d'image en ligne PhpWebGallery, je cherche un script qui fasse des resize de bonne qualité. Parce que pour le moment, j'utilise la lib GD pour la version beta de PhpWebGallery et les résultats sont moches :
http://z0rglub.dns2go.com/essai/tn/thumbnail/TN-caimans.jpg générée par un script
http://z0rglub.dns2go.com/demo/galleries/animaux/thumbnail/TN-caimans.jpg générée par un outils graphique spécialisé (XnView si je me souviens bien)
http://z0rglub.dns2go.com/essai/tn/gd2/TN-caimans.jpgfait avec GD 2.0, sur multimania, c pas mal du tout


Message édité par z0rglub le 01-07-2002 à 21:20:30

---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 01-07-2002 à 15:34:58   

Reply

Marsh Posté le 01-07-2002 à 15:37:36    

Ben tu resize et aprés tu fait un lissage (si c pas inclut dans la lib y a des algo tout con qui donne un résultat pas trop dégueu)


---------------
Le Tyran
Reply

Marsh Posté le 01-07-2002 à 15:43:01    

letoII a écrit a écrit :

Ben tu resize et aprés tu fait un lissage (si c pas inclut dans la lib y a des algo tout con qui donne un résultat pas trop dégueu)




ah tu m'intéresses, je cherche mais si tu connais j'attend tes URLs


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 01-07-2002 à 15:45:48    

Ben en fait c un algo que j'ai fais moi même, ça vaut ce que ça vaut, mais ça donnait un résultat pas trop mal. Si t intéressé je te le passe ce soir (je l'ai aps là je suis au boulot :D)


---------------
Le Tyran
Reply

Marsh Posté le 01-07-2002 à 15:48:43    

letoII a écrit a écrit :

Ben en fait c un algo que j'ai fais moi même, ça vaut ce que ça vaut, mais ça donnait un résultat pas trop mal. Si t intéressé je te le passe ce soir (je l'ai aps là je suis au boulot :D)




ah oui, ça m'intéresse fortement, en plus t'auras ton nom écris dans les contributeur à mon projet et ton nom dans les sources :D


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 01-07-2002 à 15:51:43    

z0rglub a écrit a écrit :

 
ah oui, ça m'intéresse fortement, en plus t'auras ton nom écris dans les contributeur à mon projet et ton nom dans les sources :D




 :bounce:  
Super.
Bon, je te passe ça ce soir dès que je rentre.


---------------
Le Tyran
Reply

Marsh Posté le 01-07-2002 à 15:53:45    

tu as vu ici ?
 
http://www.zend.com/codex.php?CID=344
 
tu utlises ImageCopyResampled ou ImageCopyResized ?

Reply

Marsh Posté le 01-07-2002 à 15:54:47    

ImageCopyResized


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 01-07-2002 à 15:56:41    

sinon, oui, j'ai déjà vu la page que tu me donnes en URL sur le site de ZEND. Mais j'ai pas eu le temps de tester. En tout cas, j'utilise pas imageMagik, je peux pas car ça marche pas partout


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 01-07-2002 à 22:36:10    

voici la fonction que j'utilise, le coeur étant les lignes Partie 1 et 2, faisant de belles miniatures ou moches !

Code :
  1. function RatioResizeImg( $image, $newWidth, $newHeight, $path)
  2. {
  3.  // chemin complet de l'image :
  4.  $chemin = $path.$image;
  5.  echo $chemin."<br />";
  6.  // détéction du type de l'image
  7.  eregi("(...)$",$chemin,$regs);
  8.  $type = $regs[1];
  9.  switch( $type )
  10.  {
  11.   case "gif": $srcImage = @imagecreatefromgif( $chemin ); break;
  12.   case "jpg": $srcImage = @imagecreatefromjpeg( $chemin ); break;
  13.   case "png": $srcImage = @imagecreatefrompng( $chemin ); break;
  14.   default : unset( $type ); break;
  15.  }
  16.  if( $srcImage )
  17.  {
  18.   // hauteurs/largeurs
  19.   $srcWidth = imagesx( $srcImage );
  20.   $srcHeight = imagesy( $srcImage );
  21.   $ratioWidth = $srcWidth/$newWidth;
  22.   $ratioHeight = $srcHeight/$newHeight;
  23.   // taille maximale dépassée ?
  24.   if (($ratioWidth > 1) || ($ratioHeight > 1))
  25.   {
  26.    if( $ratioWidth < $ratioHeight)
  27.    {
  28.     $destWidth = $srcWidth/$ratioHeight;
  29.     $destHeight = $newHeight;
  30.    }
  31.    else
  32.    {
  33.     $destWidth = $newWidth;
  34.     $destHeight = $srcHeight/$ratioWidth;
  35.    }
  36.   }
  37.   else
  38.   {
  39.    $destWidth = $srcWidth;
  40.    $destHeight = $srcHeight;
  41.   }
  42.   // selon votre version de GD installée sur le serveur hébergeur,
  43.   // utilisez la partie 1 ou 2 en retirant ou  
  44.   // rajoutant les caractères de commentaire "//"
  45.   // Partie 1 : GD 2.0 ou supérieur, résultat très bons
  46.   $destImage = imagecreatetruecolor( $destWidth, $destHeight);
  47.   imagecopyresampled( $destImage, $srcImage, 0, 0, 0, 0, $destWidth,$destHeight,$srcWidth,$srcHeight );
  48.   // Partie 2 : GD inférieur à 2, résultat très moyens
  49.   //$destImage = imagecreate( $destWidth, $destHeight);
  50.   //imagecopyresized( $destImage, $srcImage, 0, 0, 0, 0, $destWidth,$destHeight,$srcWidth,$srcHeight );
  51.   if( !is_dir( $path."thumbnail" ) )
  52.   {
  53.    mkdir( $path."thumbnail", 0777 );
  54.   }
  55.   $dest_file  = $path."thumbnail/TN-".$image;
  56.   // création et sauvegarde de l'image finale
  57.   /* Ici on peut éditer le chemin de sauvegarde ($dest_file) */
  58.   switch($type)
  59.   {
  60.    case "gif": @imagegif($destImage, $dest_file); break;
  61.    case "jpg": @imagejpeg($destImage, $dest_file); break;
  62.    case "png": @imagepng($destImage, $dest_file); break;
  63.   }
  64.   // libère la mémoire
  65.   imagedestroy( $srcImage );
  66.   imagedestroy( $destImage );
  67.   // renvoit l'URL de l'image
  68.   return $dest_file;
  69.  }
  70.  // erreur
  71.  else
  72.  {
  73.   echo "Image inexistante ou aucun support ";
  74.   if ($type)
  75.   {
  76.    echo "pour le format $type";
  77.   }
  78.   else
  79.   {
  80.    echo "pour ce format de fichier";
  81.   }
  82.   exit();
  83.  }
  84. }


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed