我使用外部函数创建图像。
返回图像原始数据的函数:
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>
标记中无效。
有人知道它为什么不起作用吗?
答案 0 :(得分:0)
我个人从未使用过这种技术,我通常使用一个简单的图像标签和image.jpg.php(例如)作为图像。为此,我在图像文件中放了一个header("Content-type: image/jpeg")
,然后简单地回显数据。
我真的从未尝试过使用原始数据,但我相信这是首选,尤其是维护(和兼容性)。