Redimentionner une image avec PHP ?

Discussion dans 'Web, design' créé par guslinux, 23 Février 2004.

Statut de la discussion:
Fermée.
  1. Offline
    guslinux Gamerz'ien
    guslinux, 23 Février 2004
    #1
  2. Offline
    D m S Elite
    il convertit les images ?
    D m S, 23 Février 2004
    #2
  3. Offline
    guslinux Gamerz'ien
    bein je lui passe une image par un formulaire et il la met ds un repertoire temporaire, et en fonction de tailles que j'ai donné il fait une appercu et une image "grand" format.
    guslinux, 23 Février 2004
    #3
  4. Offline
    guslinux Gamerz'ien
    Vla le code, du moin une partie

    Code:
    	$lalarg = 250; //Largeur maximale
    	$lahaut = 250; //Hauteur maximale
    
    	$origin = imagecreatefromjpeg("../machines/temp/$image");
    
    	$taille = filesize("../machines/temp/$image");
    	//echo "<b>Taille: </b><i>$taille octets</i><br>";
    
    	$larg = imagesx($origin); $pc_l = $larg / $lalarg;
    	$haut = imagesy($origin); $pc_h = $haut / $lahaut;
    
    	//echo "<b>Largeur: </b><i>$larg</i><br><b>Hauteur: </b><i>$haut</i><br>";
    	//echo "<b>Largeur % lalarg: </b><i>$pc_l</i><br><b>Hauteur % lahaut: </b><i>$pc_h</i><br>";
    
    	$pc_m = $pc_l; if ($pc_h > $pc_l) $pc_m = $pc_h;
    	//echo "<b>Dimension %: </b><i>$pc_m</i><br>";
    
    	$haut2 = $haut / $pc_m;
    	$larg2 = $larg / $pc_m;
    
    	$iqual = ($taille / $pc_m) /1000;
    	$qual = 5000;
    
                 //if ($iqual > 50) $qual = 100 * (50 / $iqual);
    
    	//echo "<b>Indice de qualité: </b><i>$iqual</i><br><b>Adaptation qualité %:</b><i>$qual</i><br> ".$chemin."thumb$image généré<br><br>";
    
    	$thumb = imagecreate($larg2,$haut2);
    	imagecopyresized($thumb, $origin, 0, 0, 0, 0,$larg2, $haut2, $larg, $haut);
    	imagejpeg($thumb,$chemin."thumb$image",$qual);
    
    guslinux, 23 Février 2004
    #4
  5. Offline
    guslinux Gamerz'ien
    SOLUTION :

    utiliser :
    Code:
    imagecreatetruecolor()
    au lieu de :
    Code:
    imagecreate()
    c cool comme monologue hein, si ca intéresse des gens je peux mettre ma fonctions en ligne.
    guslinux, 23 Février 2004
    #5
  6. Offline
    AssiuM Fan
    moi ça peut m'intéresser :)

    je suis une queue en php mais j'aime toujours analyser le code des autres :)
    AssiuM, 23 Février 2004
    #6
  7. Offline
    guslinux Gamerz'ien
    Bein voila :

    Code:
    function redim($fileName,$source,$target,$widht,$height,$del){
    			$lalarg = $widht; //Largeur maximale
    			$lahaut = $height; //Hauteur maximale
    			
    			$origin = imagecreatefromjpeg($source.$fileName);
    			$taille = filesize($source.$fileName);
    			//echo "<b>Taille: </b><i>$taille octets</i><br>";
    	
    			$larg = imagesx($origin);
    			$haut = imagesy($origin);
    			
    			if ($larg>$lalarg || $haut>$lahaut) {
    				$pc_l = $larg / $lalarg;
    				$pc_h = $haut / $lahaut;
    			}
    			else $pc_l = $pc_h = 1;
    			
    			$pc_m = $pc_l; if ($pc_h > $pc_l) $pc_m = $pc_h;
    			//echo "<b>Dimension %: </b><i>$pc_m</i><br>";
    			
    			$haut2 = $haut / $pc_m;
    			$larg2 = $larg / $pc_m;
    
    			//$iqual = ($taille / $pc_m) /1000;
    			//$qual = 5000; //Sert pour le jpg
    			//if ($iqual > 50) $qual = 100 * (50 / $iqual);
    			//echo "<b>Indice de qualité: </b><i>$iqual</i><br><b>Adaptation qualité %:</b><i>$qual</i><br> ".$chemin."thumb$image généré<br><br>";
    			
    			$thumb = imagecreatetruecolor($larg2,$haut2);
    			imagecopyresized($thumb, $origin, 0, 0, 0, 0,$larg2, $haut2, $larg, $haut);
    			imagepng($thumb,$target.$fileName); //Pour créer un PNG
    			//imagejpeg($thumb,$target.$fileName,$qual); // Pour créer un JPG
    			
    			if ($del==1)unlink($source.$fileName);
    			
    			//imagedestroy($origin);
    			//imagedestroy($thumb);
    }
    Donc la fonction comme son nom l'indique sert à redimentionner des images jpg.

    function redim($fileName,$source,$target,$widht,$height,$del)
    $fileName étant le nom du fichier (le nom du fichier source est le meme que celui de destination.

    $source et $target sont les dossiers (en principe)

    $width et $height sont les largeur et hauteur maximum (si l'image de base n'est pas assé grande elle n'est pas agrandie, ce qui evite d'avoir des gros pixels)

    et enfin $del qu'on mettra à 1 si on veut effacer le fichier source.

    pour d'autres infos :arrow: msn ou sur ce meme forum.

    et pis pour pas oublier : developpé par www.edoplan.be
    guslinux, 24 Février 2004
    #7
  8. Offline
    AssiuM Fan
    merci c'est sympa de partager :)
    AssiuM, 24 Février 2004
    #8
  9. Offline
    guslinux Gamerz'ien
    bein c qqch que j'ai amélioré et remis à jour donc ca c pas un bleme :D
    guslinux, 24 Février 2004
    #9
Statut de la discussion:
Fermée.