图片上传,是网站开发常见的需求。通常来讲就是用户上传图片啊,完事后台进行处理。比如什么压缩啊,剪裁啊,生成缩略图啊什么的。在这个过程中我们有时候会遇到一个很奇怪的错误,那就是Allowed memory size。。。等等一串。
好吧,大家都知道,这是内存溢出了。完事我们修改配置文件中的相关参数来解决,成效很明显,大部分情况下我们完事了,成功了。但是不知道大家注意没,它默认的上传限制不算太小,就按着64M来说吧。我们有时候上传个三四M的图片就会造成内存溢出。这是为什呢???
拿php的gd库来说吧,它处理图片的时候会用到一个函数,imagecreatetruecolor()。网上搜索下,知道了它是用来创建高清和透明图片的。所以嘞,基本上可以确定造成内存溢出的原因了,那就是图片的分辨率太高了。
咱们来看个公式:(图片分辨率,图片对象的width和height )X(图片的通道数,一般是3)X 1.7。
把一张分辨率高的图片信息代入公式大家就会有所发现了,我们就会知道,占用内存的大小不是取决于图片的体积大小,而是分辨率。
好啦,本次记录就到这里了。如果感觉不错的话,请多多点赞支持哦。。。