Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
810 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Garder la qualité d'une image

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Garder la qualité d'une image

n°1090429
adrien971
Posté le 20-05-2005 à 11:21:53  profilanswer
 

Bonjour,
 
 
J'ai une fonction PHP qui à partir d'un grande photo crée une autre photo plus petite (une vignette). Malheureusement la qualité de la petite photo est nettement moins bonne que celle de la grande.
je voudrais savoir quelles sont les fonctions qui permettent de garder la qualité de la photo de départ pour la vignette ou d'améliorer la qualité de la vignette.
 
 
Merci

mood
Publicité
Posté le 20-05-2005 à 11:21:53  profilanswer
 

n°1090464
jeff@be
Posté le 20-05-2005 à 11:40:40  profilanswer
 

Si tu utilises imagecopyresized(), utilise plutôt imagecopyresampled(), qui donnera un meilleur résultat.

n°1090500
adrien971
Posté le 20-05-2005 à 11:53:41  profilanswer
 

jeff@be a écrit :

Si tu utilises imagecopyresized(), utilise plutôt imagecopyresampled(), qui donnera un meilleur résultat.


 
justement c'est cette fonction (imagecopyresampled()) que j'utilise et la photo miniature n'est pas super.
 :(
 
juste un exemple
 
grande photo
http://membres.lycos.fr/adrien97110/Miller.jpg
 
petite photo  
http://membres.lycos.fr/adrien97110/MillerMini.jpg


Message édité par adrien971 le 20-05-2005 à 12:20:21
n°1090587
jeff@be
Posté le 20-05-2005 à 13:10:23  profilanswer
 

donne-nous tout ton code

n°1090588
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 20-05-2005 à 13:11:56  profilanswer
 

C'est étrange, ta miniature semble avoir été converti en image à palette.
Bonne idée le code, j'aimerais bien voir également.
 
Donne aussi, si possible, ta version de PHP et de GD.


Message édité par The-Shadow le 20-05-2005 à 13:12:31
n°1090593
jeff@be
Posté le 20-05-2005 à 13:20:52  profilanswer
 

assure-toi aussi que l'image cible est bien créée par imagecreatetruecolor()
Mais ton code pourra peut-être nous éclairer...

n°1090605
adrien971
Posté le 20-05-2005 à 13:32:19  profilanswer
 

code

Code :
  1. function redimage($img_src,$img_dest,$dst_w,$dst_h) {
  2.    // Lit les dimensions de l'image
  3.    $size = GetImageSize($img_src);
  4.    $src_w = $size[0]; $src_h = $size[1];
  5.    // Teste les dimensions tenant dans la zone
  6.    $test_h = round(($dst_w / $src_w) * $src_h);
  7.    $test_w = round(($dst_h / $src_h) * $src_w);
  8.    // Si Height final non précisé
  9.    if(!$dst_h) $dst_h = $test_h;
  10.    // Sinon si Width final non précisé
  11.    elseif(!$dst_w) $dst_w = $test_w;
  12. // Sinon teste quel redimensionnement tient dans la zone
  13.    elseif($test_h>$dst_h) $dst_w = $test_w;
  14.    else $dst_h = $test_h;
  15.    // La vignette existe ?
  16.    $test = (file_exists($img_dest));
  17.    // L'original à modifier?
  18.    if($test)
  19.       $test = (filemtime($img_dest)>filemtime($img_src));
  20.    // Les dimensions de la vignette sont correctes ?
  21.    if($test) {
  22. $size2 = GetImageSize($img_dest);
  23.       $test = ($size2[0]==$dst_w);
  24.       $test = ($size2[1]==$dst_h);
  25.    }
  26.    // Créer la vignette ?
  27.    if(!$test) {
  28.       // Cr\216e une image vierge aux bonnes dimensions
  29.       $dst_im = imagecreate($dst_w,$dst_h);
  30.       // Copie dedans l'image initiale redimensionn\216e
  31.          $src_im = ImageCreateFromJpeg($img_src);
  32.       ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
  33.       // Sauve la nouvelle image
  34.       ImageJpeg($dst_im,$img_dest);
  35.       // D\216truis les tampons
  36.       ImageDestroy($dst_im);
  37.       ImageDestroy($src_im);
  38.    }
  39. }


n°1090611
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 20-05-2005 à 13:34:04  profilanswer
 

Bon bah Jeff@be avait vu juste.
Remplace imagecreate par imagecreatetruecolor.

n°1090632
adrien971
Posté le 20-05-2005 à 13:45:48  profilanswer
 

jeff@be a écrit :

assure-toi aussi que l'image cible est bien créée par imagecreatetruecolor()
Mais ton code pourra peut-être nous éclairer...


 
 
Oui c'est bon merci j'ai remplacé ma fonction imagecreate() par imagecreatetruecolor() et la vignette est mieux.
 
résultat
 
avant:
http://membres.lycos.fr/adrien97110/MillerMini.jpg
 
 
après:
http://membres.lycos.fr/adrien97110/MillerMiniNew.jpg
 
 :D  
 
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Garder la qualité d'une image

 

Sujets relatifs
Rafraichissement image en javaBlob -> Image
[résolu] [javascript/css] placer une image après actionProblème 'image contient des erreur' avec Mambo
[RESOLU] Upload d'une image miniature sans GDTransformer doc Word en image
distorsion image[java] Enregistrer une image dans un fichier.
Faire un cadre autour d'une image en CSSrécupérer les coordonnées d'un clic sur une image
Plus de sujets relatifs à : Garder la qualité d'une image


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR