如何/可以将使用libgd创建的图像直接嵌入到html img标签中?

时间:2011-04-09 20:51:32

标签: php

我正在尝试使用php libgd库创建一个图像,并使用用于存储图像信息的变量将图像嵌入页面。

e.g。

$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);
?>

无论如何要避免做第二个例子,即我第一次尝试解释的是什么?

1 个答案:

答案 0 :(得分:2)

你能做类似事情的唯一方法是使用data URI。但是,跨浏览器的支持非常复杂,所以它可能还不是一个选项。

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

如果你去了数据URI路由,你可以像这样输出base64部分:

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