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 :

[GD] Header et son emplacement


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut [GD] Header et son emplacement
    Bonjour à tous !

    Petit problème mineur mais que je n'arrive pas à résoudre....

    Je veux réduire des images avec GD2 et je fais ceci :

    Dans index.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img border="'.resize_image(image.jpg).'">
    Dans fonction.php :

    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_image($image)
    {
     
    header('Content-type: image/jpeg');
     
    $ratio = .5;
    // Calcul des nouvelles dimensions
    list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
    $n_largeur = $largeur * $ratio;
    $n_hauteur = $hauteur * $ratio;
     
    //création de la destination
    $destination = imagecreatetruecolor($n_largeur, $n_hauteur);
     
    //on ouvre la source
    $source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
     
    // Redimensionnement
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
     
    return imagejpeg($destination);
    }
    et j'ai comme erreur evidemment des tas de caracteres....

    Où c'est que je mets le header !!!!

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Votre page est une page html et ne peut pas être à la fois une image. Un script php renvoie un fichier. A vous de choisir si votre script envoie un fichier ou envoie une image. Evidement, l'astuce est de créer deux scripts séparés.

  3. #3
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    ok merci pour les infos mais ce qui m'interesse c'est l'astuce dont tu parles....

    j'ai un fichier qui crée l'image et d'un autre coté, je dois afficher cette image...

    comment s'y prendre ??

    d'un coté :

    index.php

    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
    <?
    	require(DIR_WS_FUNCTIONS . 'ficher.php');
    	$i=0;
    	# affichage des produits visites
    	$requete = mysql_query("select p.products_id, p.products_image from products p, visite_customers v where v.products_id = p.products_id and v.customers_id = ".$customer_id." order by vis_date desc");
    	while($resultat = mysql_fetch_array($requete))
    	{
    	if($i<=4)
    		{
    		$img = $resultat["products_image"] ;
     
    	echo '<td>
    <a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">
    <img border="'.resize_image($img).'"></a></td>';
    		}
    		$i++;
    		}
    		?>
    et de l'autre :

    fichier.php

    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_image($image)
    {
    $ratio = .5;
    // Calcul des nouvelles dimensions
    list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
    $n_largeur = $largeur * $ratio;
    $n_hauteur = $hauteur * $ratio;
     
    //création de la destination
    $destination = imagecreatetruecolor($n_largeur, $n_hauteur);
     
    //on ouvre la source
    $source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
     
    // Redimensionnement
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
     
    $mini = "mini_$image";
    header('Content-type: image/jpeg');
    imagejpeg($destination);
    }
    ?>

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Le premier script donner une page html qui spécifie qu'il y a une image, l'autre script crée l'image. Quand vous avez dit ça, vous avez tout dit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="resize.php" />
    Les difficultés éventuelles pourraient être de savoir comment les variables sont transmises d'un script à un autre. Ici, a priori, les seules variable à transmettre sont les arguments de la fonction de redimensionnement qui n'est qu'une chaine que vous pouvez transmetre à resize.php par la méthode GET.

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Si je pose la question, c'est que je ne sais pas le faire donc soit on me dit donne la demarche complete et dans ce cas je pense pouvoir comprendre un code soit on ne me donne rien du tout....

    si tu connais la réponse pourquoi ne pas l'indiquer....

    merci en tout cas mais j'en suis toujours au même point

    @+

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Dans mon code, je mets ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $image = $resultat["products_image"] ;
     
    	echo '<td>
    <a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">
    <img src="fichier.php?image='.$image.'" border="0"></a></td>';
    et dans la source, j'obtiens ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <a href="product_info.php?products_id=106" style="cursor:pointer">
    <img src="fichier.php?image=20874146o_aix.jpg" border="0"></a></td>
    <td>
    <a href="product_info.php?products_id=29" style="cursor:pointer">
    <img src="fichier.php?image=MLD27119.jpg" border="0"></a></td>
    <td>
    <a href="product_info.php?products_id=105" style="cursor:pointer">
    <img src="fichier.php?image=50596.jpg" border="0"></a></td>
    <td>
    <a href="product_info.php?products_id=33" style="cursor:pointer">
    <img src="fichier.php?image=308963015.jpg" border="0"></a></td>
    <td>
    <a href="product_info.php?products_id=30" style="cursor:pointer">
    <img src="fichier.php?image=7382EM301.jpg" border="0"></a>
    et le fichier.php, c'est ça :

    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
    <?
    $image = $_GET["image"];
    $ratio = .5;
    // Calcul des nouvelles dimensions
    list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
    $n_largeur = $largeur * $ratio;
    $n_hauteur = $hauteur * $ratio;
     
    //création de la destination
    $destination = imagecreatetruecolor($n_largeur, $n_hauteur);
     
    //on ouvre la source
    $source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
     
    // Redimensionnement
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
     
    $mini = "mini_$image";
    header('Content-type: image/jpeg');
    imagejpeg($destination);
     
    ?>
    Voilà, ça avance doucement mais je n'arrive toujours pas à saisir le delire

    merci

  7. #7
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    personne pour m'aider ??

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Qu'est-ce qui ne va pas ?

  9. #9
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    merci de me répondre

    Ba en fait, je fais comme vous m'aviez dit :

    Index.php :

    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
    <table border="0" width="100%" cellspacing="0" cellpadding="0">
    <tr><td class="infoBoxHeading" colspan="5">Derniers produits visités</td></tr>
    <tr align="center">
    <?
    $i=0;
    # affichage des produits visites
    $requete = mysql_query("select p.products_id, p.products_image from products p, visite_customers v where v.products_id = p.products_id and v.customers_id = ".$customer_id." order by vis_date desc");
    while($resultat = mysql_fetch_array($requete))
    {
    if($i<=4)
    {
    $image = $resultat["products_image"] ;
    $file = "fichier.php?image=".$image;
    echo '<td>
    <a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">
    <span>'; ?>
    <img src="<? include($file); ?>" border="0">
    <? echo '</span></a></td>';
    }
    $i++;
    }
    ?>
    </tr>
    </table>
    et dans Fichier.php :

    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
    <? //$image = $_GET["image"];
    $ratio = .5;
    // Calcul des nouvelles dimensions
    list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
    $n_largeur = $largeur * $ratio;
    $n_hauteur = $hauteur * $ratio;
    //création de la destination
    $destination = imagecreatetruecolor($n_largeur, $n_hauteur);
    //on ouvre la source
    $source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
    // Redimensionnement
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
    $mini = "mini_$image";
    header('Content-type: image/jpeg');
    imagejpeg($destination);
    imagedestroy($destination);
    ?>
    et dans le code source de la page html, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>Warning</b>:  main(fichier.php?image=HN4088504.jpg): failed to open stream: No such file or directory in <b>/....

  10. #10
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    évolution sans solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">'; 
    echo '<img src=fichier.php?image="'.$image.' border="0">';
    echo '</a>
    J'affiche bien la balise img avec en valeur le fichier qui crée l'image que voici :

    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
    <? 
    $img = $_GET["image"];
    $ratio = .5;
    // Calcul des nouvelles dimensions
    list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $img); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
    $n_largeur = $largeur * $ratio;
    $n_hauteur = $hauteur * $ratio;
    //création de la destination
    $destination = imagecreatetruecolor($n_largeur, $n_hauteur);
    //on ouvre la source
    $source = imagecreatefromjpeg(DIR_WS_IMAGES . $img);
    // Redimensionnement
    imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
    $mini = "mini_$image";
    header('Content-type: image/jpeg');
    imagejpeg($destination);
    imagedestroy($destination);
    ?>
    Mais le résultat n'est toujours pas bon.

    Quand je regarde le code source de la page html générée, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="product_info.php?products_id=29" style="cursor:pointer"><img src=fichier.php?image="MLD27119.jpg border="0"></a>
    En fait le fichier n'est pas interprété mais juste affiché....

    Merci de m'aider...ça fait deux jours que je suis dessus sans succés.

  11. #11
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Ok ça marche !

    En fait, dans le fichier.php, il ne trouvais pas le bon chemin pour l'image.

    Merci en tout cas !!!

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/08/2009, 14h59
  2. Effacer un dossier et réécrire sur son emplacement
    Par andreditdd dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2009, 11h28
  3. Réponses: 5
    Dernier message: 29/09/2008, 15h42
  4. afficher une image que son emplacement se trouve ds 1 base de donne
    Par tntneo dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 15/04/2008, 20h16
  5. Réponses: 1
    Dernier message: 03/08/2007, 16h42

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