Vous n'êtes pas identifié(e).
Pages :: 1
Je viens de tester cela et ça devrait fonctionner en principe.
J'ai mis mon fichier test.jpg dans le même répertoire que mon fichier resize.php
Quelque chose semble travailler mais rien au bout.
GD2 est installé et fonctionnel.
Une erreur dans ce code?
J'ai essayé avec 320px et 240px non plus.
function resizeImage($originalImage,$toWidth,$toHeight){
list($width, $height) = getimagesize($originalImage);
$xscale=$width/$toWidth;
$yscale=$height/$toHeight;
if ($yscale>$xscale){
$new_width = round($width * (1/$yscale));
$new_height = round($height * (1/$yscale));
}
else {
$new_width = round($width * (1/$xscale));
$new_height = round($height * (1/$xscale));
}
$imageResized = imagecreatetruecolor($new_width, $new_height);
$imageTmp = imagecreatefromjpeg ($originalImage);
imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
return $imageResized;
}
$originalImage = "test.jpg";
$toWidth = "320";
$toHeight = "240";
resizeImage($originalImage,$toWidth,$toHeight);
?>
Salutations
Hors ligne
$originalImage = "test.jpg";
$toWidth = "320";
$toHeight = "240";
resizeImage($originalImage,$toWidth,$toHeight);
J'exécute la fonction resizeImage(); mais rien ne se passe.
Mon image est dans le même répertoire. Il doit manquer une autre fonction. je sais pas.
Salutations
Hors ligne
Tiens, entre-temps, j'allais voir dans le manuel de PHP et il y avait un exemple que j'ai très légèrement modifié :
$src = imagecreatefromjpeg($source_pic);
list($width,$height)=getimagesize($source_pic);
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if( ($width <= $max_width) && ($height <= $max_height) ){
$tn_width = $width;
$tn_height = $height;
}elseif (($x_ratio * $height) < $max_height){
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}else{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$tmp=imagecreatetruecolor($tn_width,$tn_height);
imagecopyresampled($tmp,$src,0,0,0,0,$tn_width, $tn_height,$width,$height);
imagejpeg($tmp,$destination_pic,100);
imagedestroy($src);
imagedestroy($tmp);
Cependant, je pourrais transformer cela pour que ça devienne un fonction :
(Eclairez moi si je me trompe)
$source_pic = $_FILES['image']['tmp_name'];
$destination_pic = $chemin.$noart.".jpg";
$max_width = 320;
$max_height = 240;
$src = imagecreatefromjpeg($source_pic);
list($width,$height)=getimagesize($source_pic);
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if( ($width <= $max_width) && ($height <= $max_height) ){
$tn_width = $width;
$tn_height = $height;
}elseif (($x_ratio * $height) < $max_height){
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}else{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$tmp=imagecreatetruecolor($tn_width,$tn_height);
imagecopyresampled($tmp,$src,0,0,0,0,$tn_width, $tn_height,$width,$height);
imagejpeg($tmp,$destination_pic,100);
imagedestroy($src);
imagedestroy($tmp);
}
MonImageResize("test.jpg","resultat.jpg","100","80")
?>
Ceci est est supposé appliquer les nouvelles dimenssions à résultat.jpg en gardant les proportions. C'est exactement ce que je voulais. Je mets ça après que le fichier soit uploadé.
Et je comprends majoritairement la fonction en soit. J'ai passé en revu leur fonctionnement sans avoir testé par contre.
Pour return, j'étais pas certain quand le mettre.
Salutations
Hors ligne
Pages :: 1