imagejpeg()函数在哪里存储动态显示的图像?

时间:2016-12-28 15:20:32

标签: php image image-processing gd

如果我使用函数imagecreatefromjpeg创建图像,然后imagejpeg将其显示在浏览器中而不是将其保存到文件中,我认为它会暂时存储在某个位置要显示。这个位置的路径是什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我也相信它存储在本地内存中。您应该能够捕获这样的图像数据,然后将其哈希到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 ).'">';