一个长宽各为2000的24位图片,至少需要 2000 x 2000 x (24/8) = 12M的内存
/***************** 这个计算大小的公式不知道是否准确 ****************************/
实际测试如下
$d = dirname(__FILE__);
echo ' a'.memory_get_usage().' ';//152K
$i = imagecreatefromjpeg($d.'/1.jpg');//0.5M 2500*3072
echo ' b'.memory_get_usage().' ';//39M
$i = imagecreatefromjpeg($d.'/2.jpg');//1.0M 3650*4486
echo ' c'.memory_get_usage().' ';//82M
ini_set('memory_limit','256M');
$i = imagecreatefromjpeg($d.'/3.jpg');//1.7M 5000*6144
echo ' d'.memory_get_usage().' ';//154M
a126056 b38619584 c82137648 d153881192
也就是说如果你允许php使用(x)大小的内存,则其和处理图片长(l)宽(h)之间的关系为l*h*5<x