通过GD库生成的图片,在项目一般是保存起来,还是在线生成

发布于 2022-09-06 11:38:05 字数 538 浏览 9 评论 0

$src="a.png";
$info=getimagesize($src);
$type=image_type_to_extension($info[2],false);
$fun="imagecreatefrom{$type}";
$image=$fun($src);
$image_thumb=imagecreatetruecolor(100,100);
imagecopyresampled($image_thumb,$image,0,0,0,0,100,100,$info[0],$info[1]);
imagedestroy($image);

//1.在线生成图片
header("content-type:".$info['mime']);
$funs="image{$type}";
//2.保存图片
$funs($image_thumb);
$funs($image_thumb,"image_thumb.".$type);

imagedestroy($image_thumb);

保存的话,占物理内存
不保存的话,占运行内存
一般这种情况,大中小型项目分别都是怎么处理的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

完美的未来在梦里 2022-09-13 11:38:05

像验证码这种不用保存吧,像缩略图这种会保存吧,所以有用的就保存,没用的不存

会发光的星星闪亮亮i 2022-09-13 11:38:05

保存的话,占物理内存=>站硬盘,不占内存

临时图片不用保存,就像楼上说的验证码,其他的都先检测有没有生成好的,有就发给浏览器,没有就生成

风向决定发型 2022-09-13 11:38:05

其实并不占。内存的占用一般都是系统进程在占用,就拿PHP来说一般一个环境中php-fpm进程会有10几个长期占用,而图片处理只是这些进程执行的工作之一罢了。所谓的存储与否只是根据不同场景的不同选择罢了。要知道IO的直接读取要比从物理存储中读取数据然后通过进程交给CPU进行处理后再返回图像的二进制数据要快的多。所以有时候你会看到cpu负载会很高

天气好吗我好吗 2022-09-13 11:38:05

如果是临时资源,临时生成。

非临时资源或非常频繁调用的,生成后保存。

消耗的不仅仅是硬盘更大的是CPU。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文