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

Langage PHP Discussion :

[PHP-JS] redimentionnement d'une image en PHP+javascript


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [PHP-JS] redimentionnement d'une image en PHP+javascript
    Bonjour a tous.

    Je cherche à redimentionner dynamiquement une image ainsi qu'à changer son url via un script PHP + javascript.

    Ma page contient diverses frames dont une qui contient l'image en question et une autre qui contient une frame invisible qui se recharge afin de récupérer les informations dans la base de données MySQL. Je cherche à changer l'image lorsque l'adresse dans la base de donnée change et à la redimentionner simultanément de manière à adapter la taille de l'image si celle-ci dépasse la taille de la frame.

    Est-ce que quelqu'un aurait une solution simple et légère à mettre en oeuvre ? Mon script fonctionne actuellement jusqu'au moment de lancer le redimensionnement mais je suis ensuite bloqué par un bug dont je n'arrive pas à trouver l'origine.

    Merci d'avance.
    Dernière modification par Kerod ; 14/06/2006 à 23h13.

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    le plus simple, c'est encore en HTML ou en javascript
    qd tu charge ta nouvelle image

    avec <img src="...." id="new_image" /> le champ HTML de ton image
    et <iframe name="frame" id="frame"></iframe>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('new_image').style.width=document.getElementById('frame').style.width;
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 41
    Par défaut
    C'est faisable avec la librairie GD, en PHP.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci à vous deux pour vos réponses mais je n'ai pas l'impression de m'être bien fait comprendre.

    Finalement j'ai trouvé une solution qui me paraît assez simple et qui consiste en la fonction suivante exécutée par le "coeur". Elle renvoie les dimensions à affecter à l'image, ce dont s'occupe ensuite le javascript généré par la page de coeur elle-même.
    Ma fonction est donc :

    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
    function resize($url,$maxwidth,$maxheight)
    {
         $imgt = getimagesize("\"".$url."\"");
         if($imgt[0]>=$imgt[1])
              {
              if($imgt[0]>$maxwidth)
                   { $width = $maxwidth; }
              else
                   { $width = $imgt[0]; }
              }
         if($imgt[0]<$imgt[1])
              {
              if($imgt[1]>$maxheight)
                   { $height = $maxheight; }
              else
                   { $height = $imgt[1]; }
              }
     
         $retour[] = array();
         $retour[0] = $width; 
         $retour[1] = $height;
         return $retour;
    }
    Cependant, je rencontre l'erreur suivante :
    Warning: getimagesize("http://localhost/TVTchat/smiley1.gif"): failed to open stream: Invalid argument in
    C:\Program Files\Apache Group\Apache2\htdocs\TVTchat\f_chat.php on line 323


    La ligne 323 est la deuxième ligne de cette fonction. Est-que quelqu'un voit d'où elle pourrait venir ? Mes recherches sur internet ayant été veines jusqu'à présent...
    Merci d'avance. ^^

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 41
    Par défaut
    Ben le paramètre que tu envoies à getimagesize() n'est pas un nom de fichier valide.

    A ta place, j'utiliserai plutôt la fonction imagecopyresized()

  6. #6
    Invité
    Invité(e)
    Par défaut
    Le problème c'est que l'url que j'envoie à la fonction est l'url qui donne le chemin d'accès à l'image dans le code HTML et cette image s'affiche correctement si je ne tente pas de la redimensionner (auquel cas l'image n'est pas renvoyée du fait de l'erreur PHP).
    L'erreur vient donc forcément d'ailleurs. Le problème c'est bien que je ne trouve pas d'où.
    Dernière modification par Kerod ; 14/06/2006 à 23h12.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] rotation d'une image
    Par isa150183 dans le forum Langage
    Réponses: 3
    Dernier message: 24/10/2006, 07h29
  2. [MySQL] Insérer une image en PHP
    Par ®om dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/08/2006, 15h53
  3. [ImageMagick] Apposer un logo à une image en PHP - Problème de couleurs
    Par Saiyan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/07/2006, 18h17
  4. Afficher une image avec PHP
    Par a_zouggari dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2006, 18h02
  5. [PHP-JS] Affichage d'une image dans une popup à la taille
    Par urbanspike dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2005, 20h53

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