[RESOLU] Afficher image sur autre page php avec fonction

Eléphanteau du PHP | 13 Messages

09 mars 2017, 17:09

Salut, j'ai encore un problème avec mes images :roll:

j'ai un code qui affiche un cercle vert dans un fichier vert.php. J'aimerai afficher cette image sur une autre page à l'aide d'une fonction.

Si j'utilise la balise <img src="vert.php"> ça fonctionne. Mais si je met le code dans le fonction et que j'appelle la fonction sur une autre page, j'ai une erreur "l'image ne peut pas être affiché car elle contient des erreurs". Si j'appelle la fonction dans vert.php, ça fonctionne aussi.
<?php
function vert()
{
header ("Content-type: image/png");
$x = 11; //largeur de mon image en PIXELS uniquement !
$y = 11; //hauteur de mon image en PIXELS uniquement !
 
/* on créé l'image en vraies couleurs avec une largeur de 50 pixels et une hauteur de 100 pixels */
$image = imagecreatetruecolor($x,$y);
 
$vert = imagecolorallocate($image, 0, 255, 0);
 
/* on créé la couleur et on l'attribue à une variable pour ne pas la perdre */
imagefilledellipse($image,5,5,10,10,$vert); //on créé un cercle
imagepng($image); //renvoie une image sous format png
imagedestroy($image); //détruit l'image, libérant ainsi de la mémoire
}
?>
<?php
include 'vert.php';
vert();
?>
Il faut savoir que dans ce fichier j'ai plusieurs images comme celle-ci et que je dois toutes les appeler à certains moment dans le code. C'est pourquoi j'ai eu l'idée d'utiliser des fonctions puisque <img src="Vert.php" alt=""> fonctionne seulement si j'ai une seule image.
Une idée comment je peux faire ?

Merci.

Eléphanteau du PHP | 13 Messages

10 mars 2017, 13:06

J'ai réussi. Il faut rajouter ça dans le fichier contenant les images.
<?php
//---- Récupération du paramètre
$img = '';
if (isset($_GET['img'])) { 
 $img = $_GET['img'];
} 
 
if ($img == 'orange') {
 orange();
} 
if ($img == 'rouge') {
 rouge();
}
//---- si la couleur passée en paramètre est "vert" ou bien n'est pas référencée
vert();
?>
Et appeler l'image comme ça :
<img src="couleur.php?img=vert"/>