IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Images] Mauvaise qualité d'image suite à une redimension d'image en php [Fait]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut [Images] Mauvaise qualité d'image suite à une redimension d'image en php
    Bonjour à tous et merci d'être venu me lire
    mon souci est le suivant : je dois m'occuper du design et des problèmes techniques d'un site de galerie d'art, et l'un d'eux est que lors de l'agrandissement de l'image sur le site, l'image apparait pixelisée, de moins bonne qualité que l'originale

    en regardant les scripts, j'ai remarqué qu'il y a un petit algorithme qui, lors de l'envoi de l'image sur le serveur, envoie en fait une copie de cette image a des dimensions différentes inférieures, et donc en modifie grandement la qualité

    le problème, c'est que je n'arrive pas à modifier le code pour que l'image reste de bonne qualité.
    je pense que les valeurs rentrées ne correspondent pas, mais sinon je suis perdu car je ne vois pas vraiment à quoi d'autre ça pourrait être du...

    qu'en pensez vous ?? Merci

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Si c'est juste un redimensionnement HTML, c'est le navigateur qui fait ça du côté client et c'est effectivement dégeulasse.
    Pour avoir une meilleure qualité, il faudrait passer par du traitement d'image avec bibliothèque graphique, GD par exemple.
    Et le moyen d'avoir une qualité optimum est d'avoir plusieurs copies de l'image sur le serveur dans différentes résolutions pour qu'il n'y ait pas de retraitement à faire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Si c'est juste un redimensionnement HTML, c'est le navigateur qui fait ça du côté client et c'est effectivement dégeulasse.
    Pour avoir une meilleure qualité, il faudrait passer par du traitement d'image avec bibliothèque graphique, GD par exemple.
    Et le moyen d'avoir une qualité optimum est d'avoir plusieurs copies de l'image sur le serveur dans différentes résolutions pour qu'il n'y ait pas de retraitement à faire.
    Merci de la réponse
    le redimensionement ne s'effectue pas en html mais en php
    imagecopycolor et imagecopyresized ont été utilisés dans le script (d'ailleurs pour peut être plus de clareté, je peux le montrer dans le post), je ne sais pas si GD a été utilisé (je ne pense pas du tout)

    je tiens aussi a signaler que j'avais fais un remplacement direct sur le serveur de l'image (vu qu'elle porte exactement le même nom et la même extension) dans le bon dossier, et que ça n'avait pas donné de résultat. l'image pixellisée était remplacée par... rien !!! et une petite croix rouge en haut a gauche

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Extrait du manuel de imagecopyresized (qui est une fonction GD) :
    L'image affiché aura une taille de moitié moins que l'image d'origine, mais une meilleur qualité peut être obtenue en utilisant la fonction imagecopyresampled().
    Allez hop, au boulot : http://fr.php.net/manual/fr/function...yresampled.php

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Extrait du manuel de imagecopyresized (qui est une fonction GD) :

    Allez hop, au boulot : http://fr.php.net/manual/fr/function...yresampled.php
    Merci pour le lien, je vais me pencher dessus

    sinon mon code ne vous intéresse pas ? ça ne peut venir que du code PHP ?

  6. #6
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par julien0709 Voir le message
    Merci pour le lien, je vais me pencher dessus

    sinon mon code ne vous intéresse pas ? ça ne peut venir que du code PHP ?
    Si le problème persiste, le code pourra être intéressant, mais il semble que le problème soit pour le moment identifié.
    Et comme tu m'a bien précisé que le redimensionnement était fait en php, oui ça ne peut venir que de là.
    Je suis comme ça, je fais confiance...

    Un peu hors-sujet, mais pour une galerie d'art pour laquelle la qualité d'image compte et pour épargner le cpu du serveur, la solution d'avoir les images stockées sous plusieurs résolutions vaut le coup d'être envisagée, non ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Si le problème persiste, le code pourra être intéressant, mais il semble que le problème soit pour le moment identifié.
    Et comme tu m'a bien précisé que le redimensionnement était fait en php, oui ça ne peut venir que de là.
    Je suis comme ça, je fais confiance...

    Un peu hors-sujet, mais pour une galerie d'art pour laquelle la qualité d'image compte et pour épargner le cpu du serveur, la solution d'avoir les images stockées sous plusieurs résolutions vaut le coup d'être envisagée, non ?
    Merci pour ces réponses, je vais me pencher sur le lien (il n'y a que quelques bouts a modifier, enfin j'espère)

    en cas de souci je publie !!!

    mais ce qui me désole, c'est de paser derrière un étudiant qui a pompé tout le code sur le net. aucun commentaire ou presque pas (ceux du net quoi lol) et mauvaise gestion de l'indentation.

    je suis tout a fait d'accord avec le fait que ça serait beaucoup plus simple d'avoir 2 dossiers : un pour les aperçu et un autre pour les images taille réelles mais bon... no comment !!!

    sinon au passage, j'aimerais savoir s'il existe un site ou autre ou je peux apprendre des bases solides et plus pour photoshop car je m'y suis lancé depuis deux semaines et ça me plait l'infographisme et le webdesign )

  8. #8
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Ayant le sens esthétique d'une huitre, je ne suis pas qualifié pour te répondre.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    j'ai lu les tutos sur le GD et j'ai pu tester la différence entre resized et sampled et la différence est sans appel c'est sans doute ce qu'il me fallait
    mais, après avoir remplacé les fonctions dans tous les fichiers nécessaires sur le serveur, il n'y a pas eu d'amélioration

    je me demande donc si le problème venait de la
    voici un petit bout du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    list($largeur,$hauteur,$type,$attr)=getimagesize("../tableaux/temp/".$name_file);
    	//unlink($_FILES['image_tmp']['name']);
    	if ($largeur>=$hauteur)
        {	//echo "toto1";
          	$rapport=$largeur/$hauteur;
          	$new_largeur=450;
    	  	$new_thmb_largeur=150;
          	$new_hauteur=450/$rapport;
    	  	$new_thmb_hauteur=150/$rapport;
        }
        else
    	{	//echo "toto2";
    	  	$rapport=$hauteur/$largeur;
          	$new_hauteur=450;
    	  	$new_thmb_hauteur=150;
          	$new_largeur=450/$rapport;
    	  	$new_thmb_largeur=150/$rapport;
    	}
     
    	$im=@imagecreatetruecolor($new_largeur,$new_hauteur);
    	$thmb_im=@imagecreatetruecolor($new_thmb_largeur,$new_thmb_hauteur);
    	imagecopyresampled($im,imagecreatefromjpeg("../tableaux/temp/".$name_file),0,0,0,0,$new_largeur,$new_hauteur,$largeur,$hauteur);
    	imagecopyresampled($thmb_im,imagecreatefromjpeg("../tableaux/temp/".$name_file),0,0,0,0,$new_thmb_largeur,$new_thmb_hauteur,$largeur,$hauteur);
    	imagejpeg($im,"../tableaux/grande/".$name_file); 
    	imagejpeg($thmb_im,"../tableaux/thmb/".$name_file);
    	unlink("../tableaux/temp/".$name_file);
    le problème peut il venir d'ailleurs ?
    j'ai songé a un problème dans la page html qui crée un tableau et qui ensuite affiche l'image traitée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <table width="100%" height="100%" border="0" class="reference">
    		<tr>
    <td align="center" valign="middle">
    			<!--<p>
    <img src="images/logo.png" width="394" height="49">
    	</p>-->
    	<!--table origine border="0"-->
    	<table width="400" border="0">
    <tr>
    <td align="center">
    <table border="8" cellpadding="4" cellspacing="8" bordercolorlight="#C0C0C0" bordercolordark="#969696" bgcolor="#FFFFCC">
    <tr>
    <td>
    <img src="<?php echo "tableaux/grande/".$row_refstock['adr_image']; ?>" border="0" onLoad="window.resizeTo(document.monImage.width+14,document.monImage.height+32); window.moveTo((screen.width-document.monImage.width)/2,5)">
    </td>
    </tr>
    </table>
    sinon j'ai aussi pensé au GD qui ne serait pas à niveau car il faut le GD 2 il me semble, mais je ne sais pas comment je peux savoir la version sur le serveur
    je suis perdu

  10. #10
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par julien0709 Voir le message
    sinon j'ai aussi pensé au GD qui ne serait pas à niveau car il faut le GD 2 il me semble, mais je ne sais pas comment je peux savoir la version sur le serveur
    je suis perdu
    Tu fais une page à part, appelons là infos.php, avec juste ces lignes :
    Et tu vas voir la page dans le navigateur ouaib, elle te donnera pleins d'infos (d'où son nom)

    Pour le reste, je regarde ça à tête reposée un peu plus tard

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Tu fais une page à part, appelons là infos.php, avec juste ces lignes :
    Et tu vas voir la page dans le navigateur ouaib, elle te donnera pleins d'infos (d'où son nom)

    Pour le reste, je regarde ça à tête reposée un peu plus tard
    mon code a évolué, mais je ne vois tjrs pas de changement vraiment impressionannt. j'utilise imagecopysampled imagecreatetruecolor et imagejpeg en qualité 100 et pourtant je perds en qualité tout en augmentant la taille de l'image en poids !!!
    je ne comprends pas

    peut être qu'une petite lumière m'aiderait...

    merci

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    bon j'ai procédé a quelques vérifications : version de php c 4.4.7 et GD c 2.0.28

    je vérifie l'image après son upload (traitée donc par imagetruecolor imagecopyresampled et tout ce qu'il faut) sur le serveur et la... perte de qualité

    mais qu'est ce qui pourrait bien me modifier tant que ça la qualité ? dans le javascript ? le serveur pas assez bon ? dans la page html (pour moi ça n'a pas de sens)

    peut être que je pense mal aussi, mais si je réduis les dimensions d'une photo, je vais donc augmenter la qualité non ? ou du moins pas en perdre

    la je suis a court d'idée

  13. #13
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par julien0709 Voir le message
    peut être que je pense mal aussi, mais si je réduis les dimensions d'une photo, je vais donc augmenter la qualité non ? ou du moins pas en perdre
    Helas non.
    Si tu changes l'image, en plus petit ou plus grand, tu réduiras la qualité car tu sera obligé d'interpoler les pixels.
    Aurais-tu un lien vers ton site pour voir à quel point la qualité n'est pas bonne ,

Discussions similaires

  1. download.file d'une image mais mauvaise qualité
    Par mathieu_r dans le forum R
    Réponses: 1
    Dernier message: 22/04/2013, 04h04
  2. insertion d'une image dans developer oracle 10 suite g
    Par rethorique dans le forum Oracle
    Réponses: 2
    Dernier message: 18/06/2006, 16h17
  3. Réponses: 8
    Dernier message: 27/03/2006, 18h12
  4. [ImageMagick] Texte -> image : très mauvaise qualité ?
    Par Yusuke dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 11/11/2005, 20h17
  5. [FLASH MX] Qualité d'affichage d'une image
    Par n_tony dans le forum Flash
    Réponses: 3
    Dernier message: 16/08/2004, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo