使用php生成图像缩略图 - 不会耗尽内存

时间:2013-02-26 12:03:15

标签: php gd image-resizing

我目前正在使用php gd实现来调整不断耗尽内存的图像 - 相当快。我猜问题是php函数,比如imagecreatefromstring等。

是否有一个简单的实现来调整不使用此函数的图像,所以我不必增加我的php.ini内存限制?

2 个答案:

答案 0 :(得分:4)

这是一个PHP函数

 function make_thumb($src, $dest, $desired_width,$desired_h) {

  /* read the source image */
  $source_image = imagecreatefromjpeg($src);
  $width = imagesx($source_image);
  $height = imagesy($source_image);

  $desired_height = $desired_h;

  /* create a new, "virtual" image */
  $virtual_image = imagecreatetruecolor($desired_width, $desired_height);

  /* copy source image at a resized size */
  imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);

  /* create the physical thumbnail image to its destination */
  imagejpeg($virtual_image, $dest);
}

答案 1 :(得分:1)

GD不会使用那么多内存,因此您的代码中还有其他问题。

如果您调整多张图片的大小并且不在新创建的图片上调用imagedestroy,则会在内存泄漏中运行。