Bonjour,
Je galère sur le redimensionnement de mes images... La fonction marche impec mais j'ai un rendu "crénelé (contour aliasé/pixelisé)"...bref qui ne convient pas à mon client... Ne trouvant pas de soluces, je m'adresse à vous. Ci après mon (le...) script :
function resize($file, $dirfic, $param_tailleL, $param_tailleH)
{
$size = getimagesize("$dirfic/$file");
$src_w=$size[0];
$src_h=$size[1];
// Teste les dimensions tenant dans la zone
$test_h = round(($param_tailleL / $src_w) * $src_h);
$test_w = round(($param_tailleH / $src_h) * $src_w);
// Si Height final non précisé (0)
if(!$param_tailleH) {$param_tailleH = $test_h;}
// Sinon si Width final non précisé (0)
elseif(!$param_tailleL) {$param_tailleL = $test_w;}
// Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$param_tailleH) {$param_tailleL = $test_w;}
else {$param_tailleH = $test_h;}
$dst_im = ImageCreate($param_tailleL,$param_tailleH);
$src_im = ImageCreateFromJpeg("$dirfic/$file");
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$param_tailleL,$param_tailleH,$src_w,$src_h);
ImageJpeg($dst_im,$src_im,60);
ImageDestroy($dst_im);
ImageDestroy($src_im);
}
Et j'appelle cette fonction depuis :
$fichier = $_FILES['file'];
for($i=0; $i<count($fichier['name']); $i++)
{
if ($fichier['name'][$i] != '')
{
$t=$t+1;//variable pour renommer les images
$dir_user = "../img-collection";
$sqloui = "'oui',";
//***traitement des fichiers images****
$mon_fichier_temp = $fichier["tmp_name"][$i];
$mon_fichier = $fichier["name"][$i];
$path_parts = pathinfo("$mon_fichier");
if ($path_parts["extension"] == 'jpg' || $path_parts["extension"] == 'jpeg' || $path_parts["extension"] == 'JPG' || $path_parts["extension"] == 'JPEG')
{
for($n=0; $n<3; $n++)
{
if ($n == 0)
{
$lettre = "-a";
$param_tailleL = 535;
$param_tailleH = 0;
}
if ($n == 1)
{
$lettre = "-b";
$param_tailleL = 210;
$param_tailleH = 0;
}
if ($n == 2)
{
$lettre = "-c";
$param_tailleL = 40;
$param_tailleH = 0;
}
$nom_tof_def = $nproduit."-0".$t.$lettre.".jpg";
copy($mon_fichier_temp, '../img-collection/'.$nom_tof_def);
//resizing de l'image
resize($nom_tof_def, $dir_user, $param_tailleL, $param_tailleH);
}
}
Merci d'avance de l'aide que vous pourriez m'apporter
Mathieu