【发布时间】:2015-03-16 18:49:27
【问题描述】:
在呈现页面时,我需要从字符串(用户的电话号码)呈现图像 (png)。可以在 php 页面中呈现图像吗?或者我必须专门创建一个页面来呈现图像并且我会包含它?
如果我在我的 php 页面中使用此代码,则无法正常工作
<?php
// Create a 100*30 image
$im = imagecreate(100, 30);
// White background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);
// Write the string at the top left
imagestring($im, 5, 0, 0, 'Hello world!', $textcolor);
// Output the image
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
http://php.net/manual/en/function.imagestring.php
我必须声明 "header('Content-type: image/png')" 还是有其他方法来渲染 png?因为如果我声明它,页面的其他部分就不会呈现。
我正在使用 Zend Framework 2
按照他的建议,我尝试使用 base64 方式并且工作正常
<?php
ob_start ();
$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);
$image_data = ob_get_contents ();
ob_end_clean ();
$image_data_base64 = base64_encode ($image_data);
?>
<img src="data:image/png;base64,<?php echo $image_data_base64; ?>" alt="img"/ >
免责声明 这是一个测试,不要在您的网站中应对和使用此代码,这是不安全的。
【问题讨论】:
-
你查看了这个答案吗? stackoverflow.com/a/14811182/199593
标签: php zend-framework2 gd