【问题标题】: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=''>

这可能吗,不保存?

【问题讨论】:

    标签: php image save


    【解决方案1】:

    是的,

    试试imagejpeg($img);

    并放入渲染图像的 PHP 脚本的 &lt;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==" alt="image" />
      

      我推断您想在一个请求中执行此操作。

      【讨论】:

      • 这将适用于单个脚本文件,如果您负担得起使用第二个脚本,那么@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();
      

      ?>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-18
        • 1970-01-01
        • 1970-01-01
        • 2014-11-24
        • 2014-11-12
        • 1970-01-01
        • 2023-04-05
        • 2014-11-05
        相关资源
        最近更新 更多