Function: imagecreatefromjpeg() en PHP

Bonjour à tous,
Actuellement, je suis entrain de créer une galerie photos avec des miniatures.
Mais j'ai un message d'erreur.

Fatal error: Call to undefined function: imagecreatefromjpeg()

Et ne sais pas comment y remédier ainsi je demande votre aide.
Merci d'avance.

12 réponses

  1. La fonction imagecreatefromjpeg() fait partie de la bibliothèque php GD. Cette bibliothèque est souvent désactivée par défaut, si c'est en local on peut l'activé, pour wamp : clic sur l'icône wamp > PHP > PHP extensions > php_gd2
    1. j'ai maintenant d'autres messages d'erreur

      Warning: imagecreatefromjpeg(./Images/Cindy Amelia/min_S5030775.JPG): failed to open stream: No such file or directory in d:\transfert\album.php on line 89

      Warning: imagesx(): supplied argument is not a valid Image resource in d:\transfert\album.php on line 90

      Warning: imagesy(): supplied argument is not a valid Image resource in d:\transfert\album.php on line 91
      S5030775.JPG

      comment résoudre ces erreurs?
      merci de votre aide
      1. N'oublie pas les guillemets :
        imagecreatefromjpeg("./Images/Cindy Amelia/min_S5030775.JPG");
        1. en fait, voici comment j'ai d'abord déclaré le nom qu'aura la miniature

          $MinImageName = "min_$ImageName";
          ensuite ..
          $ImagetteAbsolutePath = "./Images/".$Nom_Rubrique."/".$MinImageName;
          1. Alors c'est que l'image que tu entre en paramètre à la fonction imagecreatefromjpeg() n'existe pas.
            1. voici mon code,
              les images sont stockées dans un répertoire et ensuite renommées

              <?php
              $pagetitre = "Albums Photos";
              include ('Modeles/entete.php');

              require_once('./Securite/flus_connect.php');

              $requete = "select Id_Rubrique, Nom_Rubrique from t_rubrique order by Nom_Rubrique desc ";
              $resultat = mysql_query($requete);

              // Menu déroulant

              echo "<form action ='album.php' method ='post' enctype ='multipart/form-data' >
              <fieldset>
              <legend>Sélectionner une rubrique : </legend>

              <label>Votre choix : </label>
              <select name ='rubrique'>\n";
              while ($ligne = mysql_fetch_array ($resultat))
              {
              extract ($ligne);
              if ($Nom_Rubrique<>"")

              echo "<option value = '$Id_Rubrique'>$Nom_Rubrique</option>\n";
              }
              echo "</select>\n";

              echo "<input type ='submit' value ='Affichez la rubrique' />";
              echo "</fieldset>
              </form>";
              //

              // La description
              $query = "SELECT Desc_Rubrique AS RubDesc
              FROM t_rubrique
              WHERE Id_Rubrique=\"{$_POST['rubrique']}\"";
              $result = mysql_query($query) or die("ERROR");
              $RubDesc = mysql_result($result,0,"RubDesc");

              // Le nombre d'images
              $query = "SELECT count(Id_Image) AS ImgCount
              FROM t_images
              WHERE Num_Rubrique=\"{$_POST['rubrique']}\"";
              $result = mysql_query($query) or die("ERROR");
              $ImgCount = mysql_result($result,0,"ImgCount");
              echo "<br/><br/>$RubDesc<br/><br/>$ImgCount image(s)<br/><br/>";

              echo "-------------------------------------------------------------------------------<br/>";
              // Commence la table dans laquelle sont affichées les imagettes
              echo "<table border='1' width='100%'><tr>";
              // Récupère la liste des images de la rubrique sélectionnée
              $query = "SELECT Id_Image, Nom_Image, Legende_Image, Taille_Image
              FROM t_images
              WHERE Num_Rubrique=\"{$_POST['rubrique']}\"
              ORDER BY Nom_Image";
              $result = mysql_query($query);

              // On veut afficher 4 images par ligne
              $NbrImgParLigne = 4;
              $NumImgLigne = 0;

              // Traite les images une après les autres
              while ($row = mysql_fetch_array($result))
              {
              // Passe l'affichage des images à la ligne si 4 images affichées
              if ($NumImgLigne>=$NbrImgParLigne)
              {
              echo "</tr><tr>";
              $NumImgLigne = 0;
              }

              $NumImgLigne++;

              // Commence une colonne de la grille pour y inclure l'image
              echo "<td align='center'>";

              // Récupère l'ID et le nom de l'image, en déduit le nom de la miniature
              $ImageID = $row['Id_Image'];
              $ImageName = $row['Nom_Image'];
              $MinImageName = "min_$ImageName";

              // Chemin absolu de l'imagette
              $ImagetteAbsolutePath = "./Images/".$Nom_Rubrique."/".$MinImageName;

              // Récupère les dimentions de l'imagette
              $JPEGRes = ImageCreateFromJPEG("$ImagetteAbsolutePath");
              $xsrc = imagesx($JPEGRes);
              $ysrc = imagesy($JPEGRes);

              // Affiche le nom de l'image et sa miniature
              echo "$ImageName<br/><img src='$ImagetteAbsolutePath'
              width='$xsrc' height='$ysrc' border='0' alt='$ImageName'>";

              // Termine la colonne de la grille pour cette image
              echo "</td>";
              }

              echo "</tr></table>";
              include('Modeles/pied_page.php');
              ?>
              1. Mais est-ce que l'image ./Images/Cindy Amelia/min_S5030775.JPG existe ? Ou le but c'est de la créer ?
                1. Donc ce cas c'est normal, la fonction ImageCreateFromJPEG() copie une image existante en mémoire pour travailler dessus. Il faut utiliser la fonction imagejpeg() pour créer une image.
                  Mais il y a encore quelques étapes entre, je t'invites à rechercher des exemples sur internet. Et si tu rencontre d'autres problèmes n'hésites pas ;)