2011-04-09 52 views
1

我正在尝试使用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); 
?> 

有没有办法避免做第二个例子,也就是我第一次尝试解释什么?

+0

的[?是否有可能使图像与HTML]可能重复(http://stackoverflow.com/questions/955076/is-it-it-it-it-render-image-with-html) – 2011-04-09 20:55:49

回答

2

你可以做类似的唯一方法是用data URI。但是,跨浏览器支持是非常混杂的,所以它可能不是一种选择。

你最好的选择可能是在文件系统中适当的缓存方案。这也有性能优势,因为您不需要每次都生成图像。

如果你去的数据URI路径,可以输出以base64部分是这样的:

ob_start(); 
imagepng($image); 
$image_str = ob_get_clean(); 
echo base64_encode($image_str); 
+0

我使用数据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

+0

我发布了如何做这个转换。 – 2011-04-09 21:44:35

+0

谢谢,完美的作品。 – 2011-04-09 23:51:35

相关问题