Imagedestroy 不会释放内存
我运行一个循环,其中包含一个脚本,该脚本可识别图像中的白色背景,然后复制没有白色背景的图像的裁剪版本。在循环结束时,我使用 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);
I run a loop that contains a script that identifies white backgrounds in images and then copies a cropped version of the image without that white bacground. In the end of the loop I use imagedestroy to free the memory but the script nonetheless exceed memory limit (>256mb).
How can this be?
Code inside loop:
$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);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我有同样的内存问题(在循环中创建数百个图像)。尝试在函数中放入尽可能多的内容。出于某种原因,PHP 处理图像资源的功能有所不同。
I had the same Problems with Memory (creating hundreds of Images in a Loop). Try to put as much you can in functions. For any reason PHP handles Image-Resources different in functions.