为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
MYYA 2019-03-10 11:24:11
$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); 保存的话,占物理内存不保存的话,占运行内存一般这种情况,大中小型项目分别都是怎么处理的?
查看完整描述

4 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-03-18
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

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

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

查看完整回答
反对 回复 2019-03-18
?
呼唤远方

TA贡献1856条经验 获得超11个赞

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

查看完整回答
反对 回复 2019-03-18
?
www说

TA贡献1775条经验 获得超8个赞

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

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

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

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 742 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信