Le rendu de l'image avec php un fichier de sortie avec la html <img> tag

J'ai une classe avec plusieurs fonctions qui peuvent rendre des images.

//render.php
class Render {
   public function Render($some_arguments) {
      ...
      header("Content-Type: image/png");
        $im = @imagecreate(110, 20)
            or die("Cannot Initialize new GD image stream");
        $background_color = imagecolorallocate($im, 0, 0, 0);
        $text_color = imagecolorallocate($im, 233, 14, 91);
        imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
        imagepng($im);
        return "data:image/png;base64,".base64_encode($im);
   }
}

Ensuite, j'ai mon fichier php qui contient le code html et où je serais à la sortie de l'image à l'intérieur d'un < img> tag:

//index.php
include("render.php");
$render = new Render();
echo "<htlm><head></head><body>";
echo "<img src=\"".$render->Render(1)."\" />";
echo "</body></html>";

Quand je le lance index.php dans mon navigateur, j'ai juste un écran vide.

Ne puis-je pas utiliser un appel de fonction, comme une source de l'image? Je sais que je peux utiliser un fichier php comme source, comme < img src="render_image.php" />, mais alors je ne peut pas envoyer d'arguments dans un orientée objet (je sais que je peux utiliser $_GET pour récupérer les arguments), mais je voudrais le faire avec une belle orientée objet code écrit.

Donc, est-il possible d'utiliser un appel de fonction en tant que source d'une balise html?

Vous devriez obtenir des non-fonctionnement des ordures, pas un écran vide. Soulever la fonction error_reporting ou regarder dans l'erreur.journal. Aussi la ->Render() fonction serait sortie de l'img de données, pas de retour. Le travail sur le premier plutôt que l'interface d'un objet.

OriginalL'auteur Rox | 2012-01-21