显示由imagejpeg创建的图像

时间:2012-07-04 07:48:22

标签: php image gd

我使用外部函数创建图像。

返回图像原始数据的函数:

function create_image()
{
    ...
    ImageJPEG($myimg,NULL,85);
    $imgdata = ob_get_contents(); 
    ob_end_clean();          
    return $imgdata;
}

我的脚本应该显示图像的样子:

$rawdata = create_image();
<img src="data:image/jpeg;base64,".base64_encode($rawdata)."" />

现在<img>标记中的图片未完整。如果我将质量设为50(使用ImageJPEG($myimg,NULL,50);),则图像将完全显示。如果我抓住rawdata并将其写入磁盘,图像将以各种质量完成。

$rawdata = create_image();
$im = imagecreatefromstring($rawdata);
ImageJPEG($im,"./test.jpg",90);

仅在<img>标记中无效。

有人知道它为什么不起作用吗?

1 个答案:

答案 0 :(得分:0)

我个人从未使用过这种技术,我通常使用一个简单的图像标签和image.jpg.php(例如)作为图像。为此,我在图像文件中放了一个header("Content-type: image/jpeg"),然后简单地回显数据。

我真的从未尝试过使用原始数据,但我相信这是首选,尤其是维护(和兼容性)。