PHp - 调整PNG图像大小时的内存错误

时间:2009-11-12 13:56:35

标签: php memory image-manipulation

我有一个脚本可以从上传的图像中创建缩略图。它适用于jpgs,但给我一个错误

  

致命错误:允许的内存大小为67108864字节耗尽(尝试分配26250000字节)

当我上传png图片时。

脚本是:

//create thumbnail; $modwidth and height are calculated in another part of the script
//$original is the path to the full sized image

$tn = imagecreatetruecolor($modwidth, $modheight); 
switch (strrchr($new_image_name,'.')) {
  case ".jpg":
    $image = imagecreatefromjpeg($original);
    break;
  case ".jpeg":
    $image = imagecreatefromjpeg($original);
    break;
  case ".png":
    $image = imagecreatefrompng($original);
    break;
  case ".gif":
    $image = imagecreatefromgif($original);
    break;
}
imagecopyresampled($tn, $image, 0, 0, $x_pos, $y_pos, $modwidth, $modheight, $width, $height); 
switch (strrchr($new_image_name,'.')) {
  case ".jpg":
    imagejpeg($tn, $target_path, 100);
    break;
  case ".jpeg":
    imagejpeg($tn, $target_path, 100);
    break;
  case ".png":
    imagepng($tn, $target_path, 0);
    break;
  case ".gif":
    imagegif($tn, $target_path);
    break;
}

正如我所说,它与JPG以及GIF完美配合。 该内存错误仅出现在PNG中,而我只使用了1.2Mb图像。

我该如何解决这个问题? 谢谢 帕特里克

2 个答案:

答案 0 :(得分:2)

在脚本之前使用ini_set('memory_limit', '256M');

答案 1 :(得分:1)

你需要将php.ini中的memory_limit设置增加到像这样的

memory_limit = 128M