PHP GD Library sortie une image et du texte contenu sur une même page
Je suis en train de la sortie d'une image dans un navigateur, puis sortie HTML (pas directement liée à l'image) sur la même page. Est-ce possible? Je vais avoir un diable de temps à essayer de le comprendre. Voici mon code, j'ai été déconner avec:
<?php
function LoadJpeg($imgname){
/* Attempt to open */
$im = @imagecreatefromjpeg($imgname);
/* See if it failed */
if(!$im){
/* Create a black image */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Output an error message */
imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}
return $im;
}
header('Content-Type: image/jpeg');
$img = LoadJpeg('images/Ball.jpg');
imagejpeg($img);
imagedestroy($img);
//trying to start my text here
header('Content-Type text/html; charset=utf-8');
echo "<br /><h2>ross</h2>";
?>
Droit près du bas de mon code est là que j'ai essayer d'ajouter dans mon code html. quand je le lance, je seulement obtenir l'image, pas de texte après. Si j'essaie de le déplacer vers le haut, avant la fonction, juste après la balise d'ouverture php, le texte fonctionne correctement, puis j'obtiens une erreur:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/newimage.php:4) /Applications/MAMP/htdocs/newimage.php sur la ligne 28,
Toute aide serait grandement appréciée, merci.
OriginalL'auteur user1075004 | 2011-12-01
Vous devez vous connecter pour publier un commentaire.
Arrêter et de réfléchir un instant. Comment voulez-vous normalement incorporer une image dans un fichier HTML?
Vous créez deux fichiers: text.html et image.jpg. Même ici, vous allez créer deux de scripts, l'un pour la sortie du HTML et celle qui génère l'image. Le HTML ressemblerait à:
La
generateimage.php
script génère uniquement l'image.Permet de prendre par exemple un formulaire qui permet à l'utilisateur de créer un numérique carte de Noël: il peut choisir l'image et écrire une note personnelle en dessous.
form.html:
view_card.php:
generateimage.php:
Je suis l'aide d'une forme à l'utilisateur la saisie de texte, puis d'écrire des commentaires sur une image. À la fois l'image et le texte sont définis par l'utilisateur sur le formulaire, donc ne pense pas que c'est aussi facile que l'exemple ci-dessus que vous avez fournis. <form method="post" action="selection.php"> est le formulaire html info je suis à l'aide. Donc, sur selection.php je sortie de l'image avec imagejpeg($img); une fois que l'image a été sortie, qui tue la capacité à écrire de code html sur la page. Plus d'aide?
Je vois, vous avez besoin de passer sur le formulaire d'informations pour la generateimage.php le script puis. Je vais modifier ma réponse en conséquence.
OriginalL'auteur Marijn van Vliet
Y compris l'image dans le HTML
Voir la suite de la question et réponses: Le Codage Base64 Image.
Vous
peut encoder votre image à l'aide debase64_encode()
puis sortie dans<img>
tag:(voir cette jsfiddle pour une preuve).
La génération de l'image dans le fichier différent
Vous pouvez générer l'image en dehors du script qui génère du code HTML. Dans ce cas, vous aurez besoin pour générer le code HTML ici et mettre
src
attribut de<img>
étiquette à l'emplacement du script de génération de l'image. Voir @Rodin réponse un peu plus détaillée de réponse au sujet de cette solution.Fait-il? Vous avez besoin de plus d'aide?
Il a essayé de l'image de sortie avec HTML et contrairement à ce que disent les autres, je dis que c'est possible et j'ai prouvé 😉 je suis juste curieux de savoir pourquoi j'ai été vers le bas voté pour montrer solution de travail étant le plus proche de celui de l'OP essayé de mettre en place 🙂
Ne savais pas que cela était possible, +1!
Car chaque "solution de travail" mérite une mise en œuvre juste parce que "ça marche" et parce que pas tous les OP ne sait vraiment ce qu'il faut demander.
D'accord sur le fait que tous les OP sait comment le demander. Mais, laissez-le décider de la solution qu'il choisit. Quand il s'agit de la mise en œuvre de solutions, il est bien sûr question plus complexe impliquant de nombreux aspects différents. Ma solution a des avantages & cons. Les Pros sont: 1) le code est stocké dans un seul endroit, 2) 2x moins de demandes vers le serveur, 3) vous ne pouvez pas connecté à une telle image, 4) sont moins vulnérables à des attaques (ok, peut-être la dernière n'est pas toujours vrai, mais vous ne montrez pas la structure de votre application / emplacement des scripts d'accéder à des fichiers sur le serveur), etc.
OriginalL'auteur Tadeck
vous ne pouvez pas définir l'en-tête une fois sortie a été envoyé au navigateur. Au lieu d'envoyer tout comme texte/html et insérer les données d'image brutes dans une balise img
OriginalL'auteur Pastor Bones
Magasin seulement votre création de l'image de code dans son propre script php. Puis vous appelez le script dans votre code HTML, comme si il s'agissait d'une image avec la balise img comme ceci:
OriginalL'auteur Chris C