Я использую этот код для создания изображения
<?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); ?>
Работа кода штрафуется, если я прокомментирую номер строки «A» и «B», и она генерирует изображение в браузере с тестированием, написанным на нем. Но я хочу, чтобы изображение было в div. поэтому я раскомментирую линию (A) и (B), но не дает правильного вывода. Сгенерированный html также является странным сгенерированным html.
<img src="http://localhost/php/test92.php" alt="The image “http://localhost/php/test92.php” cannot be displayed, because it contains errors.">
В принципе, для создания динамического изображения в HTML вам понадобятся 2 файла PHP:
Давайте посмотрим на это:
Вы создаете image.php
который принимает параметр, например: ID изображения или имя файла. По соображениям безопасности вы должны фильтровать любой параметр, который он получает.
Почему вы должны это делать? потому что для генерации изображения вы не можете смешивать его с другим выходом HTML. Не говоря уже о едином
space
илиreturn
поскольку это сделает изображение сломанным.
Вы делаете HTML- test92.php
на другом PHP, скажем, test92.php
. Для логики HTML здесь, например:
<img src="image.php?imageID=12" alt="" />
Если вам нужен div вокруг вашего изображения, вы должны сделать это в html, вы не можете сделать это в коде генерации изображения
<div> <img src="http://localhost/php/test92.php"> </div>
Если вы получаете ошибки относительно изображения, попробуйте просмотреть URL-адрес изображения http: //localhost/php/test92.php и посмотреть, как он выглядит.
Он показывает изображение, как вы ожидаете?