php-gd中imagecreatefromjpeg的内存使用

一个长宽各为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

你可能感兴趣的:(php,gd)