如何计算处理图像所需的内存?

时间:2011-03-09 23:41:49

标签: php memory image-processing

我想对用户上传的图像设置一些限制,因此处理它们的脚本永远不会耗尽内存。

占用更多内存的图像是分辨率更高的图像。它们不需要具有大字节的大小。例如,分辨率为4000x2500的46kb图像和一些透明胶片(PNG)大约需要90mb才能调整大小。

有没有办法准确预先计算所需的内存?

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

通常,经验法则是源图像和目标图像的宽度x高度x 4(rgba),并且不要忘记脚本本身已经消耗的内存量。

答案 1 :(得分:0)

文件上传后使用GD库,您可以使用getimagesize()。然后,您可以检查高度和宽度以确定是要处理它还是返回错误,如果您想要考虑这一点,它还会返回每种颜色使用的位数。

因此,您的验证可以是文件大小和尺寸。