如何防止php中图像模糊时出现内存限制致命错误


How to prevent memory limit fatal error when blurring in image in php?

我已经写了一个算法,通过可自定义的半径高斯模糊图像,就像这个算法一样:FastBlur.js(函数boxBlurCanvasRGB),但只移植到php。

当我选择一张512x384像素的图像时,该功能效果非常好。较大的图像会导致致命的php错误(内存超过)。但目标是使用任何图像维度,并在发生致命错误之前发出警告。

类似于:

if ($memory_needed_for_this > $available_memory_at_all) { return false; }

是否有可能计算一个进程所需的内存量,或者检查当前使用的内存量(比如说在for each循环中)?

感谢

做一些测试并对内存的使用情况进行采样-如果它与图像大小的增长一致,您可以很容易地计算出最大大小。

memory_get_usage

返回当前分配给PHP脚本的内存量(以字节为单位)。

http://php.net/manual/en/function.memory-get-usage.php

相关文章: