Can html be used with dynamically generated images in php?

I use this code to create an image

<?php // Set the content-type header('Content-Type: image/png'); // Create the image $im = imagecreatetruecolor(400, 30); // Create some colors $white = imagecolorallocate($im, 255, 255, 255); $grey = imagecolorallocate($im, 128, 128, 128); $black = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 399, 29, $white); // The text to draw $text = 'Testing...'; // Replace path by your own font path $font = 'arial.ttf'; // Add some shadow to the text imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); // Add the text imagettftext($im, 20, 0, 10, 20, $black, $font, $text); // Using imagepng() results in clearer text compared with imagejpeg() (A)print ('<div class="test">'); imagepng($im); print ('</div>'); (B)imagedestroy($im); ?> 

Working with the code works if I comment out the line numbers "A" and "B", and it generates an image in the browser with testing written on it. But I want the image to be in a div. therefore, I will uncomment the line (A) and (B), but it does not give the correct conclusion. The generated html is also weird generated html

 <img src="http://localhost/php/test92.php" alt="The image "http://localhost/php/test92.php" cannot be displayed, because it contains errors."> 
0
source share
2 answers

Basically, to create a dynamic image in HTML, you need 2 PHP files:

  • one for the image itself
  • another one for PHP to display it.

Let me take a look at this:

  • You create image.php that takes a parameter, for example: an image identifier or a file name. For security reasons, you should filter on any parameter that it receives.

    Why should you do this? because you cannot mix it with another HTML output to generate an image. Not to mention a single space or return , as this will make the image broken.

  • You are making HTML code in another PHP, say test92.php . For the HTML logic here, for example:

    • get image data
    • encode data
    • display image => <img src="image.php?imageID=12" alt="" />
+1
source

If you need a div around your image, you have to do it in html, you cannot do it in the image generation code

 <div> <img src="http://localhost/php/test92.php"> </div> 

If you get errors regarding the image, try looking at the image URL http: //localhost/php/test92.php and see what it looks like.

Does the image show as you expect?

+1
source

All Articles