Redimentionner une image avec PHP ?

Statut
N'est pas ouverte pour d'autres réponses.

D m S

Elite
il convertit les images ?
 
1er
OP
guslinux

guslinux

Gamerz'ien
D m S a dit:
il convertit les images ?
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.
 
1er
OP
guslinux

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);
 
1er
OP
guslinux

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.
 

AssiuM

Fan
moi ça peut m'intéresser :)

je suis une queue en php mais j'aime toujours analyser le code des autres :)
 
1er
OP
guslinux

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
 

AssiuM

Fan
merci c'est sympa de partager :)
 
1er
OP
guslinux

guslinux

Gamerz'ien
AssiuM a dit:
merci c'est sympa de partager :)
bein c qqch que j'ai amélioré et remis à jour donc ca c pas un bleme :D
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut