我已经写了一个算法,通过可自定义的半径高斯模糊图像,就像这个算法一样: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