【发布时间】:2017-05-12 21:45:41
【问题描述】:
如果我使用函数imagecreatefromjpeg 创建图像,然后使用imagejpeg 将其动态显示到浏览器而不将其保存到文件中,我假设它会临时存储在要显示的位置。该位置的路径是什么?
【问题讨论】:
标签: php image image-processing gd
如果我使用函数imagecreatefromjpeg 创建图像,然后使用imagejpeg 将其动态显示到浏览器而不将其保存到文件中,我假设它会临时存储在要显示的位置。该位置的路径是什么?
【问题讨论】:
标签: php image image-processing gd
虽然文档没有说明,但它似乎将其存储在内存中。
测试脚本:
<?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 ).'">';
【讨论】: