我运行一个循环,其中包含一个脚本,用于识别图像中的白色背景,然后复制图像的裁剪版本而不使用该白色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);
答案 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);
?>