图像到浏览器而不保存

时间:2011-02-28 10:36:42

标签: php image save

如何在不保存的情况下将内存中的图像放入浏览器。

例如:

 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=''>

这可能,不保存吗?

3 个答案:

答案 0 :(得分:4)

是,

试试imagejpeg($img);

并将<img src=路径放入呈现图像的PHP脚本

请参阅示例:http://php.net/manual/en/function.imagecreatefromjpeg.php

答案 1 :(得分:3)

也许如果您将图像编码为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==" alt="image" />

我猜想你想在一个请求中这样做。

答案 2 :(得分:2)

您应该有一个发送正确标头的脚本,然后它应该被浏览器识别为图像。类似的东西:

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

&GT;