Modifier des images en php

Résolu
Bonjour,

Avant de commencer, je voudrais remercier toutes la communautés pour le temps investi dans l'entraide.

Je viens vers vous car j'ai besoin de reproduire l'image que vous trouverez en pièce jointe.

Je ne viens pas vers vous les mains vides, en effet après plusieurs recherches j'ai trouver les fonctions dont j'aurais besoin et j'en suis arriver la :
<?php
// Définition du tablau de points pour le polygone
$values = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            60,  60,  // Point 3 (x, y)
            240, 20,  // Point 4 (x, y)
            50,  40,  // Point 5 (x, y)
            10,  10   // Point 6 (x, y)
            );

// Création d'une image
$filename = "img/herrmann.jpeg";
echo $filename;
$image = imagecreatefromjpeg ( $filename );

// Dessine le polygone
imagefilledpolygon($image, $values, 6);

// Affichage de l'image
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>


Toutefois lorsque je compile, rien ne s'affiche a part l'icone d'une image qui ne s'affiche pas si vous voyez de laquelle je parle.
Même le "echo $ filename " ne fonctionne pas.

Si quelqu'un peut m'aider ou me mettre sur la voie a suivre, je l'en remercie d'avance.

PS: J'ai également vu dans php.net que sa parlais d'une fonctionnalité a activé (faopen ou quelque chose comme ça qui me permettrait d'utiliser la fonction imagecreatefromjpeg j'attend vos commentaires.

Merci.

3 réponses

  1. Salut,

    Essaye ceci et dis nous si tu as des erreurs PHP :
    <?php
    $debug = true;
    
    if ($debug) {
     ini_set('display_errors', true);
     error_reporting(E_ALL);
    }
    
    // Définition du tablau de points pour le polygone
    $values = array(
                40,  50,  // Point 1 (x, y)
                20,  240, // Point 2 (x, y)
                60,  60,  // Point 3 (x, y)
                240, 20,  // Point 4 (x, y)
                50,  40,  // Point 5 (x, y)
                10,  10   // Point 6 (x, y)
                );
    
    // Création d'une image
    $filename = "herrmann.jpeg";
    $image = imagecreatefromjpeg ( $filename );
    
    // Dessine le polygone
    imagefilledpolygon($image, $values, 6);
    
    if (!$debug) {
     // Affichage de l'image
     header('Content-type: image/jpeg');
     imagejpeg($image);
    }
    
    imagedestroy($image);
    


    Bonne journée
    0
    1. Bonjour en utilisant ta méthode voila se qui s'affiche
      0
    2. Le code de ton commentaire à la réponse de Ereohalm semble correct. Ce message est donc obsolète ;)
      0
    3. effectivement merci pour ta participation
      0
  2. Si tu veux déboguer, n'envoie pas le header déclarant un fichier de type image.
    0
    1. En enlevant le header, il me manquait un parametre dans la fonction imagefilledpolygon,
      j'ai donc modifier mon code et j'ai fait ceci
      <?php
      // Définition du tablau de points pour le polygone
      $values = array(
                  40,  50,  // Point 1 (x, y)
                  20,  240, // Point 2 (x, y)
                  60,  60,  // Point 3 (x, y)
                  240, 20,  // Point 4 (x, y)
                  50,  40,  // Point 5 (x, y)
                  10,  10   // Point 6 (x, y)
                  );
      
      // Création d'une image
      $filename = "img/herrmann.jpg";
      echo $filename;
      var_dump($filename);
      $image = imagecreatefromjpeg ( $filename );
      
      //$image = imagecreatetruecolor(250, 250);
      
      // Alloue quelques couleurs
      //$bg   = imagecolorallocate($image, 0, 0, 0);
      $blue = imagecolorallocate($image, 0, 0, 255);
      
      // Remplit l'arrière-plan
      //imagefilledrectangle($image, 0, 0, 249, 249, $bg);
      
      // Dessine le polygone
      imagefilledpolygon($image, $values, 6, $blue);
      
      // Affichage de l'image
      //header('Content-type: image/jpg');
      imagejpeg($image);
      imagedestroy($image);
      ?>
      


      et la j'ai mon echo et mon var dump qui fonctionne, part contre au niveau de l'iamge sa m'as fait une chose tres bizare mais je pense que nous sommes sur la bonne voie,
      sa m'as écrit une page que avec des lettres, des symboles et des numéro (je pense que c'est le code de l'image qui s'est affichés et non l'image en elle meme)
      0
    2. C'est bien le code de l'image qui s'affiche ce qui semble dire que ton code fonctionne. Supprime tous les echo et var_dump et réactive le header content-type, ton image devrait alors s'afficher.
      0
    3. Super sa fonctionne.
      Merci pour votre aide :)
      0