我正在使用PHP处理一些使用GD扩展的图像。代码结构相当复杂,图像被分配到代码的“深处”,并且有许多IF可以简单地退出。该脚本仅处理单个图像,一旦将其写入文件便退出。我想我可以改用try...catch,但我想知道是否真的需要调用imagedestroy()或PHP的垃圾收集器会在脚本结束时释放它? 最佳答案 不,您不需要调用此函数,但这是一个很好的做法,因为图像可能很大,如果您在拥挤的环境中,每一千字节都很重要。 关于php-只处理单张图片需要imagedestroy()吗?,我们在S
functionpng2jpg($originalFile,$outputFile,$quality){$image=imagecreatefrompng($originalFile);imagejpeg($image,$outputFile.'.jpg',$quality);imagedestroy($image);}我正在使用它来压缩图像,但我总是发现我保存的文件被删除了。imagedestroy()是为了节省内存还是会同时删除输出文件。 最佳答案 不只是在内存中。来自手册imagedestroy()freesanymemory
采用这个简单的循环while(1){$data=file_get_contents('randomfiles.img');$resource=imagecreatefromstring($data);//>dosomeimageoperationandotherstuff//>continue//>notcallingimagedestroy($resource);}如您所见,我没有调用imagedestroy,但我使用相同的变量($resource)来存储imagecreatefromstring();(类型资源)的输入当一个新循环启动时,phpGC会自动释放之前的$resource