合理的PHP memory_limit用于图像大小调整

我想让我网站上的用户将图片上传到他们的帐户.图像大小调整为整个站点所需的4种不同大小.

我一直在使用Pear Image_Transform,但我在某些类型的jpgs(所有文件都在2mb下尝试)中不断出现“字节耗尽”致命错误.所以我搬到了配备奔腾双核E5200 @ 2.50GHz和2GB内存的专用服务器上.上传相同的图像调整大小代码 – 相同的错误.我将php.ini中的RAM增加到了64M但是网站在某些类型的jpg上遇到了同样的问题.还尝试了wideimage类 – 相同的错误(错误始终与imagecreatefromjpeg()). (使用GD2).所有在我的Mac上本地工作正常.

这真的是一个内存问题,我的设置图像调整大小的合理memory_limit是什么?

解决方法:

可以像这样计算出你需要多少内存的粗略指南

$imageInfo = getimagesize( $sourceImagePath );

// a check to make sure we have enough memory to hold this image
$requiredMemoryMB = ( $imageInfo[0] * $imageInfo[1] * ($imageInfo['bits'] / 8) * $imageInfo['channels'] * 2.5 ) / 1024;

这非常粗糙,包括一个软糖因子2.5,你可能想要试验.

上一篇:尝试使用PHP的GD库来扭曲图像


下一篇:在PHP中使用GD,如何在PNG和GIF文件上创建透明的PNG水印? (JPG文件工作正常)