Imagedestroy不释放内存

时间:2011-12-15 13:33:37

标签: php image-processing

我运行一个循环,其中包含一个脚本,用于识别图像中的白色背景,然后复制图像的裁剪版本而不使用该白色bacground。在循环结束时,我使用imagedestroy释放内存,但脚本仍超过内存限制(> 256mb)。 怎么会这样?

循环内的代码:

$img = imagecreatefromjpeg($imgSrc);

/* Script for identifying whitespace */

//create new image
$newimg = imagecreatetruecolor(
            imagesx($img)-($wsLeft+$wsRight), imagesy($img)-($wsTop+$wsBottom));

//get new width and height
$width = imagesx($newimg);
$height = imagesy($newimg);

//free memory
imagedestroy($newimg);
imagedestroy($img);

1 个答案:

答案 0 :(得分:0)

我遇到了与内存相同的问题(在循环中创建了数百个图像)。尝试尽可能多地使用功能。由于任何原因,PHP处理函数中不同的Image-Resources。

<?php
$newimg = imagecreatefromjpeg2($imgSrc,$wsLeft,$wsRight,$wsTop,$wsBottom);

function imagecreatefromjpeg2($imgSrc,$wsLeft,$wsRight,$wsTop,$wsBottom){
    $img = imagecreatefromjpeg($imgSrc);
    $newimg = imagecreatetruecolor(
    imagesx($img)-($wsLeft+$wsRight), imagesy($img)-($wsTop+$wsBottom));


        imagedestroy($img);
        return $newimg
}
$width = imagesx($newimg);
$height = imagesy($newimg); 
 ?>