2
如果我使用功能imagecreatefromjpeg
创建图像,然后imagejpeg
将其显示给浏览器并且不会将其保存到文件中,我假定它暂时存储在要显示的位置。位置的路径是什么?imagejpeg()函数在哪里存储动态显示的图像?
如果我使用功能imagecreatefromjpeg
创建图像,然后imagejpeg
将其显示给浏览器并且不会将其保存到文件中,我假定它暂时存储在要显示的位置。位置的路径是什么?imagejpeg()函数在哪里存储动态显示的图像?
虽然文档没有声明,但它似乎将其存储在内存中。
测试脚本:
<?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
我也相信这是存储在本地内存。您应该能够像这样捕获图像数据,然后将其散列到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).'">';