【问题标题】:Where does imagejpeg() function store images displayed on the fly?imagejpeg() 函数在哪里存储动态显示的图像?
【发布时间】:2017-05-12 21:45:41
【问题描述】:

如果我使用函数imagecreatefromjpeg 创建图像,然后使用imagejpeg 将其动态显示到浏览器而不将其保存到文件中,我假设它会临时存储在要显示的位置。该位置的路径是什么?

【问题讨论】:

    标签: php image image-processing gd


    【解决方案1】:

    虽然文档没有说明,但它似乎将其存储在内存中。

    测试脚本:

    <?php
    
    echo memory_get_usage(), PHP_EOL;
    $im = imagecreatefromjpeg('https://jpeg.org/images/jpeg-home.jpg');
    echo memory_get_usage(), PHP_EOL;
    unset($im);
    echo memory_get_usage(), PHP_EOL;
    

    输出:

    238064
    240360
    240104
    

    【讨论】:

      【解决方案2】:

      我也相信它存储在本地内存中。您应该能够像这样捕获图像数据,然后将其散列到 base64 以便将其显示在图像标签中:

      //...
      ob_start(); 
      imagejpeg( $img, NULL, 100 ); 
      imagedestroy( $img ); 
      $imageData = ob_get_contents();
      ob_end_clean();
      echo '<img src="data:image/jpeg;base64,'.base64_encode( $imageData ).'">';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-05
        • 2011-02-25
        • 1970-01-01
        • 2022-11-04
        • 1970-01-01
        相关资源
        最近更新 更多