Bonjour,
j'ai un problème avec un redimensionnement d'image jpeg.
une fois redimensionnées mes vignettes au format Jpeg perdent trop de qualité et les couleurs bavent
j'ai fais un tour sur le net ... de quelques heures * plusieurs jours et je ne trouve toujours rien.
j'ai pourtant changé les "imagecreate()" par des "imagetruecolor()" et remplacé "imagecopyresized()" par "imagecopyresampled()".
la je suis complètement paumé et un petit coup de main de ne serait pas de refus.
merci d'avance.
voila le code:
Modifié par adlteam (28 Apr 2008 - 17:58)
j'ai un problème avec un redimensionnement d'image jpeg.
une fois redimensionnées mes vignettes au format Jpeg perdent trop de qualité et les couleurs bavent
j'ai fais un tour sur le net ... de quelques heures * plusieurs jours et je ne trouve toujours rien.
j'ai pourtant changé les "imagecreate()" par des "imagetruecolor()" et remplacé "imagecopyresized()" par "imagecopyresampled()".
la je suis complètement paumé et un petit coup de main de ne serait pas de refus.
merci d'avance.
voila le code:
<?php
/*
* but = redimensionnement automatique des images
*
*/
function fonc_redim($img,$size,$pos) {
//echo "IMG : ".$img."<br />";
$image_dim = getimagesize($img);
//choix de l'orientation de l'image
if($pos = width) {
// x est plus grand que y
$new_x = $size;
$new_y = ceil($image_dim[1]/($image_dim[0]/$size));
}else {
if($pos = height) {
// y est plus grand que x
$new_y = $size;
$new_x = ceil($image_dim[0]/($image_dim[1]/$size));
}else{
// x == y
$new_x = $size;
$new_y = $size;
}
}
//redimensionnement de l'image
/*$new_y = $size;
$new_x = $image_dim[0]/($image_dim[1]/$size);
*/
$extension = substr(strrchr(basename($img), "."), 1 );
$chaine = substr($img,0,-4);//enléve les 4 derniers caractères
switch($extension){
case "jpg":
$old_img = imagecreatefromjpeg($img);
$chaine.="_mini.jpg";
break;
case "jpeg":
$old_img = imagecreatefromjpeg($img);
$chaine.="_mini.jpg";
break;
case "gif":
$old_img = imagecreatefromgif($img);
$chaine.="_mini.gif";
break;
case "png":
$old_img = imagecreatefrompng($img);
$chaine.="_mini.png";
break;
}
//verification
if (!$old_img) {
$im = imagecreatetruecolor(150, 30); // Création d'une image blanche
$bgc = imagecolorallocate($old_img, 255, 255, 255);
$tc = imagecolorallocate($old_img, 0, 0, 0);
imagefilledrectangle($old_img, 0, 0, 150, 30, $bgc);
// Affichage d'un message d'errur
imagestring($old_img, 1, 5, 5, "Erreur de chargement de l'image $img", $tc);
return $old_img;
}
$new_img = imageCreatetruecolor($new_x, $new_y);
imagecopyresampled ($new_img, $old_img,0,0,0,0,$new_x,$new_y,$image_dim[0],$image_dim[1]);
switch($extension){
case "jpg":
imagejpeg($new_img,$chaine);
break;
case "jpeg":
imagejpeg($new_img,$chaine);
break;
case "gif":
imagegif($new_img,$chaine);
break;
case "png":
imagepng($new_img,$chaine);
break;
}
imagedestroy($new_img);
imagedestroy($old_img);
$adjustment = $max - $new_y;
$img_x=$image_dim[0]+40;
$img_y=$image_dim[1]+40;
return $chaine ."\" onclick=\"open('./image.php?im=".$img."', 'new', 'toolbar=no,location=no, directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes, Width=$img_x, Height=$img_y')";
}
?>
Modifié par adlteam (28 Apr 2008 - 17:58)