我正在建立一个网站,我应该能够上传非常大的图像(从 2MB 到 50MB)。当然我需要调整它们的大小,但是createimagefromjpeg函数会占用大量内存。某些图像的内存使用量达到 800 兆字节,但我使用的是 hostgator 的共享计划,并且那里的最大内存为 256M。我可以以某种方式减少此功能使用的内存吗?
问问题
404 次
2 回答
2
根据Hostgator 论坛ImageMagick 应该安装在您的服务器上。由于纯粹的效率,我建议使用二进制文件来调整图像大小。要做你想做的事,这样的命令就足够了(假设你想要你要求的 2 MB):
$SCALED_VALUE = (2097152/filesize($OLD_IMAGE))*100; #< Get the percentage of scaling that is required to go to 2MB
shell_exec('convert '. $OLD_IMAGE . '-resize ' . $SCALED_VALUE . '% new_image.jpg'); #< Perform scaling
在评论中回答有关 php_memory_limit 的问题;此限制在 PHP 内,不会影响 ImageMagick(或 PHP 以外的任何其他应用程序)。
于 2013-01-13T15:57:25.577 回答
1
尝试切换到不同的图像处理库,如ImageMagick或Gmagick,而不是依赖 GD 扩展。您必须安装这些依赖项并重新启动 Apache。
如果这是不可能的,请考虑按照此答案中所述减小图像的像素大小。
于 2013-01-13T15:47:22.870 回答