Dawa www.shootmeagain.com | Hello à tous,
Sur mon site j'utilise un script qui redimensionne en 800x700 max une image uploadée et qui lui ajoute un petit bandeau en-dessous avec un peu de texte, comme ça par exemple : http://www.shootmeagain.com/photo/ [...] ersk03.jpg
Le souci est qu'avec de grandes étendues rouges ou bleues, la compression fait beaucoup de dégâts, alors que la qualité de compression est à 92%... Exemple : -> Je vous dépose mon script, est-ce que quelque chose cloche ?
Code :
- if(is_uploaded_file ($_FILES[$nomtof]['tmp_name']))
- {
- $tof=$_FILES[$nomtof]['tmp_name'];
- $newname=$_FILES[$nomtof]['name'];
- $newname = rawurldecode($newname);
- $newname=strtolower($newname);
- $user=strtoupper($_POST['user']);
- $resized=resize($tof,$newname,800,700,"photo/".$_POST['gal']."/",$user);
- $thumb=resize($tof,$newname,130,130, "photo/".$_POST['gal']."/small/" );
- MAJtof($_POST['mode'], $_POST, $bd, $newname);
- $ok=1;
- }
|
Code :
- <?php
- function resize($file, $tofname, $maxWidth, $maxHeight, $path, $user=0)
- {
-
- ini_set("memory_limit","32M" );
- ini_set("max_execution_time","300" );
- $prod=$maxWidth*$maxHeight;
- //Créé une image à partir de $file
- $img = ImageCreateFromJpeg($file);
- //Dimensions de l'image
- $imgWidth = imagesx($img);
- $imgHeight = imagesy($img);
- //Facteur largeur/hauteur des dimensions max
- $whFact = $maxWidth/$maxHeight;
- //Facteur largeur/hauteur de l'original
- $imgWhFact = $imgWidth/$imgHeight;
- //fixe les dimensions du thumb
- if($imgWidth <= $maxWidth && $imgHeight <= $maxHeight)
- {
- $thumbWidth=$imgWidth;
- $thumbHeight=$imgHeight;
- }
- else
- {
- if($imgWidth > $imgHeight)
- {
- //Si largeur déterminante
- $thumbWidth = $maxWidth;
- $thumbHeight = $thumbWidth/$imgWhFact;
- if($thumbHeight>$maxHeight)
- {
- $redimfact=$thumbHeight/$maxHeight;
- $thumbHeight=$maxHeight;
- $thumbWidth=$thumbWidth/$redimfact;
- }
- }
- else
- {
- //Si hauteur déterminante
- $thumbHeight = $maxHeight;
- $thumbWidth = $thumbHeight*$imgWhFact;
- if($thumbWidth>$maxWidth)
- {
- $redimfact=$thumbWidth/$maxWidth;
- $thumbWidth=$maxWidth;
- $thumbHeight=$thumbHeight/$redimfact;
- }
- }
- }
- //Créé le thumb (image réduite)
- if($maxWidth==800)
- $thumbHeight2=$thumbHeight+20;
- else
- $thumbHeight2=$thumbHeight;
- $imgThumb = ImageCreateTruecolor($thumbWidth, $thumbHeight2);
- $white = imagecolorallocate($imgThumb,255,255,255);
- $black = imagecolorallocate($imgThumb,0,0,0);
- imagefill($imgThumb,0,0,$white);
- //Insère l'image de base redimensionnée
- ImageCopyResampled($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight);
- if($maxWidth==800)
- {
- $postxtx=$thumbWidth-210;
- $postxty=$thumbHeight2-5;
- $font1="images/GOTHIC.TTF";
- imagettftext($imgThumb, 10, 0, 24, $postxty, $black, $font1,"PHOTO BY ".$user);
- imagettftext($imgThumb, 10, 0, $postxtx, $postxty, $black, $font1,"WWW.SHOOTMEAGAIN.COM" );
- //imagettftext($img, 16, 0, 20, 54, $white, $font1,$bandname2);
- }
- //Nom du fichier thumb
- //list($titretof,$ext,$temp) = explode(".",$file);
- $imgThumbName = $path.$tofname;
- //Créé le fichier thumb
- // $fp = fopen($imgThumbName, "wb" );
- // fclose($fp);
- // fflush($fp);
- //Renvoie le thumb créé
- ImageJpeg($imgThumb, $imgThumbName,92);
- imagedestroy($imgThumb);
- imagedestroy($img);
- return $imgThumbName;
- }
- ?>
|
Merci beaucoup ! ---------------
SHOOT ME AGAIN WEBZINE
|