图像到浏览器而不保存
Posted
技术标签:
【中文标题】图像到浏览器而不保存【英文标题】:Image to browser without saving 【发布时间】:2011-02-28 10:36:41 【问题描述】:如何将图像从内存中放入浏览器,而不保存。
例如:
function getImage()
$imageFile = imagecreatefromjpeg('Map.jpg');
$imageObject = imagecreatefrompng('image2.png');
imagealphablending($imageFile, true);
imagecopy(....);
$ret = array($imageFile, $imageObject) ;
return $ret
<?php $ret = getImage(); ?>
<img src = <?php $ret[0];? alt=''>
这可能吗,不保存?
【问题讨论】:
【参考方案1】:是的,
试试imagejpeg($img);
并放入渲染图像的 PHP 脚本的 <img src=
路径
查看示例:http://php.net/manual/en/function.imagecreatefromjpeg.php
【讨论】:
【参考方案2】:也许如果您将图像编码为 base64 并像这样使用它,它会起作用:
<?php
$img_str = base64_encode($imgbinary);
echo '<img src="data:image/jpg;base64,'.$img_str.'" />';
?>
html:
<img src="data:image/jpg;base64,R0lGODlhCgAKAJEAAAAAAP///81Wv81WvyH5BAEAAAMALAAAAAAKAAoAAAIUjIViq+x7QpunwXoZ lXFu/mjIUgAAOw==" />
我推断您想在一个请求中执行此操作。
【讨论】:
这将适用于单个脚本文件,如果您负担得起使用第二个脚本,那么@Jan Zyka 和@Dobiatowski 解决方案会更好。 这在 Internet Explorer 是的,我完全同意。但我想,这是唯一可能的方法,在一个请求中进行这样的处理,对吗? 是的,没错。因此,在一个请求中执行此操作是个坏主意【参考方案3】:您应该有一个发送正确标题的脚本,然后它应该被浏览器识别为图像。比如:
<?php
ob_start();
// assuming you have image data in $imagedata
$length = strlen($imagedata);
header('Last-Modified: '.date('r'));
header('Accept-Ranges: bytes');
header('Content-Length: '.$length);
header('Content-Type: image/jpeg');
print($imagedata);
ob_end_flush();
?>
【讨论】:
以上是关于图像到浏览器而不保存的主要内容,如果未能解决你的问题,请参考以下文章