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] redimension photo php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut [Images] redimension photo php
    bonsoir ,

    voila j'ai un probleme pour redimensioné une image , j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    function redimagenormal($img_src,$dst_w,$dst_h) {
          $size = GetImageSize($img_src);
       $src_w = $size[0]; $src_h = $size[1];
          $test_h = round(($dst_w / $src_w) * $src_h);
       $test_w = round(($dst_h / $src_h) * $src_w);
        if(!$dst_h) $dst_h = $test_h;
          elseif(!$dst_w) $dst_w = $test_w;
       elseif($test_h>$dst_h) $dst_w = $test_w;
       else $dst_h = $test_h;
          echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
    }
    ?>

    j'appele la photo redimensioné ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <IMG SRC="./directory/image/1/20"
     <?php             redimagemini("./directory/image/1/20",100,200)?>>
    la photo s'affiche bien comme voulue

    , maintenant je désire afficher toute les images correspondant a un identifiant , je fait ceci :

    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
    <?php
    if( isset($_GET['id']) )
    {
    $id = intval ($_GET['id']);
             include('redimension.php');
    $base="x";
    $db="x";
    $req = "SELECT lien ".
    "FROM table WHERE id_user = ".$id;
    $ret = mysql_query ($req) or die (mysql_error ());
    while ( $col = mysql_fetch_row ($ret) )
    {
    echo "<img src=".$col[0]."  redimagenormal(\"".$col[0]."\",100,200)>"
        ;
    }
    }?>
    le probleme est qu'il affiche bien toute les images , mais celles si ne sont pas redimensioné , pourquoi?

    merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    j'ai pas tout lu, mais quand tu dis que cela fonctionne bien, tu utilises la fonction redimagemini et quand cela ne va pas tu utilises redimagenormal

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    voila j'ai bien verifie que je melangeais pas les deux mais non , c'est a cause des copier-coller que je me suis tromper

    par contre je remarque que les fonctions sont definie sur redimension.php
    et la page pour voir les photo c'est galery.php , si je ne mets pas un include de dimension.php sur galery.php ca ne change rien , alors est ce que le probleme est du au faite que la function n'est pas bien declare ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {
    echo "<img src=".$col[0]."  redimagenormal(\"".$col[0]."\",100,200)>"
        ;
    }
    merci

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Si tu n'inclus pas le fichier contenant la définition de la fonction, tu devrais avoir une erreur du genre Call to undefined function, non ?

    Sinon, vérifie bien que $col[0] contient le chemin relatif ou absolu permettant d'accéder à l'image.
    Si ce n'est pas le cas, je te conseille ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ( $col = mysql_fetch_assoc ($ret) )
    {
       $lien = './directory/image/1/20' . $col['lien'];
       echo "<img src=".$lien.redimagenormal($lien, 100, 200).">";
    }
    Au passage, tu sembles avoir un joli paquet d'erreurs de syntaxe... Pourquoi ne nous les donnes-tu pas ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    salut merci de preter attention a mon probleme

    voila j'ai mis ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ( $col = mysql_fetch_assoc ($ret) )
    {
       $lien =  $col['lien'];
       echo "<img src=".$lien.redimagenormal($lien, 10, 20).">";
    }
    }
    ca affiche bien la foto mais egalement a gauche de celle ci ceci : WIDTH=10 HEIGHT=15

    et la photo n'est pas redimensioné.

    Pour ce qui est call undefined function , maintenant je suis obligé de rajouter l'include de la page redimension.php , preuve que la fonction est bien declarer si je pense bien.

    quand tu dis de donné mes scripts , au niveau de la syntaxe , tu entends quoi par la? envoyer les scripts au complet?

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je ne te demande pas de nous donner les scripts mais les erreurs
    Cela aurait aussi pour objectif de te forcer à y prêter attention ou au au moins de t'indiquer qu'il devrait y avoir des erreurs, si tel n'est pas le cas.

    Pour ton problème, essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function redimagenormal($img_src,$dst_w,$dst_h) {
          $size = GetImageSize($img_src);
       $src_w = $size[0]; $src_h = $size[1];
          $test_h = round(($dst_w / $src_w) * $src_h);
       $test_w = round(($dst_h / $src_h) * $src_w);
        if(!$dst_h) $dst_h = $test_h;
          elseif(!$dst_w) $dst_w = $test_w;
       elseif($test_h>$dst_h) $dst_w = $test_w;
       else $dst_h = $test_h;
     
       return "WIDTH=".$dst_w." HEIGHT=".$dst_h;
    }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    bonjour

    pour ce qui est du probleme de syntaxe , je vais parcourir mon site et donner les probleme que je trouve , j'en ai surtout un que je ne sais pas resoudre , je le ferais lorsque mon probleme de redimension sera resolu


    j'ai mis ton script et la photo est bien redimension , mais elle n'apparait plus, on voit juste un cadre avec une petite croix rouge au dessu , si je clique propriete j'ai ca :directory/imag/1/32WIDTH=68 , donc il y a le width=68 de trop je supposes

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Arf, désolé, je t'ai indiqué une fausse manoeuvre auparavant. Fais ceci dans ta boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img src="'.$lien.'" '.redimagenormal($lien, 100, 200).'>';
    Sinon, concernant tes erreurs :
    Non, ne donne pas ici toutes les erreurs de ton site !
    Je ne te demande pas plus de donner toutes ces erreurs que de nous donner ton code... Je te demandais simplement de donner les erreurs en relation avec le problème que tu soumets !
    Si tu n'avais pas d'erreurs, alors ton serveur de développement est mal configuré (il aurait dû t'en donner). Si tu avais des erreurs, nous les donner aurait pu aider à diagnostiquer ton (tes) souci(s).

    Pour revenir sur les modifications de code proposées : il s'agit de demander à la fonction de retourner les paramètres à afficher dans le HTML plutôt que de lui demander de les afficher elle-même. Pourquoi ? Parce que c'est une méthode plus flexible, parce que tu as un meilleur contrôle sur ce qui est affiché.
    Dans le code ci-dessus, on voit clairement que tu affiches d'abord le chemin vers l'image puis autre chose, ce qui sera donc des options d'affichage pour l'image. Il n'y a pas besoin de regarder le contenu de ta fonction pour deviner à quoi elle sert et comment elle fonctionne.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    salut merci , pour les syntaxes j'ai compris , mais avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img src="'.$lien.'" '.redimagenormal($lien, 100, 200).'>';
    il m'indique une parse error : parse error, expecting `','' or `';'' in c:\weblocal\v.1\galery.php on line 34

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ce n'est certainement pas cette ligne-là qui génère une parse error...

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    non effectivement , une erreur de ma part

    je te remercie de ton aide , merci

    EDIT : pourquoi la qualité de l'image est si fortement reduite? ( pas vraiment un probleme de programmation php mais j'en profite pour demander)

  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je n'ai pas l'image sous les yeux donc je ne peux pas juger de ce que tu appelles "qualité si fortement reduite".

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    salut , je ne vois pas comment pouvoir te montrer l'image , mais si la photo redimensioné est meme plus petite que l'origine la qualité chute , on voit meme des petit carré sur la photo.

    maintenant je desire enfait avoir 3fois la photo , 1fois dite "normale" 1fois "small" et alors pour ma gallerie d'autorisé 200pix de largeur max.

    normal : j'appele le lien normal , la photo lors de l'insertion ne recois aucun redimensionage

    small : j'appele avec la function de plus haut , 100x200 par ex, la on ne distingue pas la mauvaise qualité puisque la photo est relativement petite

    3eme : la se pose le probleme , la qualité est assez reduite , peut etre connaisez une methode meilleure?

    merci

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je n'ai jamais vu d'image devenir pixellisée lorsqu'on en réduit les dimensions au moyen de propriétés HTML... Je suis bien curieux de voir ton exemple.

    Concernant tes redimensions, je te recommande de jeter un oeil du côté de la librairie GD. Une recherche sur ce forum devrait te donner de nombreux résultats. Le_coyote a écrit un tuto là-dessus.
    Si cette solution ne te convient pas, alors il te faudra réfléchir à un petit algo pour récupérer la taille de l'image et la réduire jusqu'à la taille sougaitée. Ce n'est vraiment pas compliqué, c'est pourquoi je ne t'aiderai pas davantage là-dessus.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    ok merci , je lis d'avantage d'information , mais j'ai un nouveau probleme , enfait j'ai une photo pour la galerie et une autre comme avatar ou couverture , j'ai donc dans ma base un champ "lien" (pour la galerie) et un champs "ava" pour l'avatar

    sur la page pour voir l' avatar de la personne , je selectionne "ava" quand c'est l'id ( par get ) , mais j'ai ceci :


    la photo de l'avater bien redimensionné mais ceci aussi

    Warning: Division by zero in c:\weblocal\v.1\redimension.php on line 27

    Warning: Division by zero in c:\weblocal\v.1\redimension.php on line 28

    Warning: Division by zero in c:\weblocal\v.1\redimension.php on line 27

    Warning: Division by zero in c:\weblocal\v.1\redimension.php on line 28


    pour rappel j'ai 3photos en tout pour l'user n°1 , donc apparement les 2 photos qui ne sont pas en avatar posent probleme , pourquoi et comment y remedier?

  16. #16
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    montres nous les 2 lignes incriminés

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Même sans connaître un mot d'anglais, tu devrais être en mesure de lire ce message d'erreur et de deviner ce qui ne va pas : tu fais visiblement une division à un moment en utilisant la valeur zéro comme diviseur. Probablement une variable mal initialisée.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    les deux ligne:

    ligne 27 $test_h = round(($dst_w / $src_w) * $src_h);
    ligne 28 $test_w = round(($dst_h / $src_h) * $src_w);

    oui je me doute , mais pourtant je ne désire qu'apeler 1 photo a redimensioné pour mettre en avatar

    id --- id_user --- galerie --- ava
    1 --- 1 --------- test/h.jpg-
    2--- 1 ---------- test/k.jpg- test/k.jpg
    3----1-----------test/s.jpg-
    4----2-----------test/sd.jpg-


    voila en gros la structure , je suppose quand j'appele "ava" quand id_user=1 , lui trouve 3donnees , 1 bonne (image) qu'il redimension =>ok et les 2autre , il ne trouve pas de lien et mets donc l'erreur , je suis bien juste?

  19. #19
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Oui, tu es sur la bonne voie. Il ne te reste plus qu'à trouver comment corriger cette erreur. Conseil : ne fais pas le calcul quand il n'y a pas d'image.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    mettre une condition sur la page redimension.php qui si il y a le lien il applique la fonction et si il y a pas de lien il ne l'applique pas?

    ou plutot sur la page d'afficher l'avatar : j'ai tester ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $req = "SELECT couv ".
    "FROM foto WHERE id_user = ".$idf;
    $ret = mysql_query ($req) or die (mysql_error ());
    while ( $col = mysql_fetch_assoc ($ret) )
    {
       $lien =  $col['couv'];
       if ($lien = '')
       {}else{
       echo  '<img src="'.$lien.'" '.redimagenormal($lien, 150, 300).'>';
    }                         }
    mais dans se cas il ne marque plus que les erreurs et meme plus la photo redimensioné

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Ouvrir une image avec Photo Editor
    Par malingue dans le forum Access
    Réponses: 1
    Dernier message: 07/07/2006, 16h54
  2. [Image]Insérer une image générée par PHP dans un formulaire (anti-robot)
    Par dark_vidor dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 29/04/2006, 22h48
  3. [Images] Redimension img et enregistrer autre répertoire
    Par dldstyle dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/04/2006, 23h00
  4. [Image]Déplacer/enregistrer une image crée par PHP ?
    Par renaud26 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 17/03/2006, 15h00
  5. Images & Appareil Photo
    Par cjacquel dans le forum MFC
    Réponses: 2
    Dernier message: 24/12/2005, 14h46

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