如何将用libgd创建的图像直接嵌入到html img标签中?
我正在尝试使用php libgd库创建一个图像,并使用正在使用的变量来存储图像信息以将图像嵌入页面中。如何将用libgd创建的图像直接嵌入到html img标签中?
例如
$image = get_image();
function get_image() {
$image = imagecreate(...);
...
return $image;
}
//echo '<img src="'.$image.'"/>';
希望你得到什么,我试图做的。我知道我可以创建,可以像使用一个单独的PHP文件:
echo '<img src="image.php"/>';
其中image.php是..
<?php
$image = get_image();
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
有没有办法避免做第二个例子,也就是我第一次尝试解释什么?
你可以做类似的唯一方法是用data URI。但是,跨浏览器支持是非常混杂的,所以它可能不是一种选择。
你最好的选择可能是在文件系统中适当的缓存方案。这也有性能优势,因为您不需要每次都生成图像。
如果你去的数据URI路径,可以输出以base64部分是这样的:
ob_start();
imagepng($image);
$image_str = ob_get_clean();
echo base64_encode($image_str);
我使用数据URI研究了你的建议,并且我很快遇到了这个论坛上发布的同样的问题(http:// forums.devshed.com/php-development-5/inline-images-in-img-tag--how-can-i-base64-encode-234459.html)。 PHP资源无法转换为base64字符串。我试图避免使用临时文件,你有任何其他建议吗? – 2011-04-09 21:29:25
我发布了如何做这个转换。 – 2011-04-09 21:44:35
谢谢,完美的作品。 – 2011-04-09 23:51:35
的[?是否有可能使图像与HTML]可能重复(http://stackoverflow.com/questions/955076/is-it-it-it-it-render-image-with-html) – 2011-04-09 20:55:49