L'affichage d'une image créée avec imagecreatefromstring
Disons que j'ai le code qui ressemble à quelque chose comme:
<?PHP
//
//... stuff here
//
$im = imagecreatefromstring( $imageData );
echo "<img src=" . /* what goes here? */ . "alt=\"the image\" />";
//
//more stuff here
//
?>
Que dois-je remplacer /* ce qui se passe ici? */avec mes données d'image d'affichage?
Merci.
Vous devez vous connecter pour publier un commentaire.
L'emplacement que vous avez sélectionné est le
src
attribut de laimg
HTML-baliseDocs. La valeur est ce qu'on appelle URIDocs.Dans votre cas, vous voulez que les URI à point pour les données de l'image en question. Vous n'avez pas spécifié le type de l'image en sortie, donc je vais supposer que c'est une image PNG dans l'exemple suivant.
Maintenant, vous avez besoin de convertir vos données d'image dans un URI. Le plus simple URI pour créer des données de l'image est ce qu'on appelle
données:
URIWikipédia:Même c'est le plus simple, il n'est pas toujours recommandé de le faire parce que les données de l'image sera retourné avec le HTML au navigateur. Si l'image est grande, ce qui est communément considéré comme une surcharge.
Au lieu d'utiliser le
data:
URI, vous pouvez placer un autre URI là, par exemple, un HTTP URI qui pointe vers un script PHP sur votre serveur qui retourne l'image. Un tel scénario peut être très simple:C'est comparable à ce que l' Marc B a suggéré, voir sa réponse ainsi.
devrait être tout ce dont vous avez besoin. De le faire avec la balise image comme vous êtes, vous auriez besoin à la sortie de l'image dans un fichier temporaire et de pointer la balise d'image à l' (qui subit une deuxième requête HTTP), ou d'utiliser un les données de l'url.
Je pense que vous pouvez faire quelque chose comme ça...
Que vous avez à économiser la ressource d'un fichier de première ou de sortie en utilisant quelque chose comme
imagepng()
dans une demande distincte.Voir
imagecreatefromstring()
la documentation pour plus d'informations.Si vous souhaitez utiliser un Les données de schéma d'URI, vous pouvez essayer ceci à la place: