1

我正在寻找一种使用 PHP 和 GD 动态创建缩略图的方法,但每次我选择一个可能 10MegaPixels 约 4-5MB 的大图像时都会出现错误

**images/Surabhi_Cow.jpgimages/tn/Surabhi_Cow.jpg
Fatal error: Allowed memory size of 31457280 bytes exhausted (tried to allocate 10368 bytes) in C:\Program Files\xampp\htdocs\MySite\Staff\test.php on line 51**

将 php.ini 中的 memory_limit 更改为 60 可以解决问题,但我的主机只允许 memory_limit 为 32M。我还有哪些其他选项可以即时生成缩略图?我检查了 phpThumb() 但并没有真正明白。所以欢迎任何其他选择!

4

5 回答 5

3

你想用ImageMagick. 它在处理大图像方面比 GD 更有效。

于 2009-02-10T06:10:19.787 回答
1

如果您只想生成缩略图。我推荐这个名为imagethumb.php的漂亮小脚本。你可以在这里下载:http ://www.olivo.net/software/imagethumb/

该脚本可生成出色的缩略图,绝对没有像素化。它接受附加到调用脚本的 URL 的高度或宽度参数。它真的很容易使用并附带文档(您将阅读全部 2 分钟)。

在登陆这个之前,我尝试了其他缩略图脚本,例如“ThumbsUp”(例如)。顺便说一句,它还呈现 .png 图像和 .gif (如果我没记错的话)。如果您有大文件,缓存功能将使您的服务器更容易。另外,我假设您的服务器安装了GD库或ImageMagick。祝你好运 ;)

于 2009-02-10T17:43:18.693 回答
0

我正在对该主题进行一些研究,我发现 Imagick 在处理更大的图像方面效率更高。您将通过允许的内存或最大执行时间。更好的方法是使用 Imagick 库。查看有关如何使用 Imagick 即时使用php 生成缩略图的信息。

于 2012-11-08T10:22:01.020 回答
0

正如其他人所说,如果图像那么大,是时候放弃 GD 并切换到 ImageMagick 了。不过要警告一句:在命令行上完成所有操作 - 类包装器需要彻底重新发明轮子,每一个轮子都需要重新发明。

于 2009-02-10T14:03:23.587 回答
0

考虑使用基于命令行的方法。例如,您可以从命令行调用ImageMagick来调整图像大小。

除此之外,在纯 PHP 中,很难看到如何编辑比 RAM 更大(RGB格式)的图像......

于 2009-02-10T06:11:22.840 回答