2009-02-10 136 views
1

我一直在寻找一种方式来动态地创建缩略图使用PHP和GD但每次我选择一个大的图像可能10MegaPixels约4-5MB它给人的错误PHP缩略图

**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(),但并没有真正得到它。所以欢迎任何其他选项!

+0

是否有可能在命令行运行某些东西? – 2009-02-10 06:10:08

回答

3

您想使用ImageMagick。它比GD更有效地处理大图像。

+0

非常适合这种情况,重采样效果很好。 – Syntax 2009-02-10 14:05:11

0

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

除此之外,在纯PHP,这是很难看你如何编辑比你的内存是大(在RGB格式)图片...

0

正如其他人所说,如果图像是大的是放弃GD并切换到ImageMagick的时候了。有一句话警告:在命令行上都这样做 - 那里的类包装是需要重新发明的轮子,每一个都是最后一个。

1

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

这个脚本会产生优异的缩略图,完全没有像素结构。它接受您追加到调用脚本的URL的高度或宽度参数。它非常易于使用,并附带了文档(您将在2分钟内阅读这些文档)。

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

0

我正在做一些关于这个话题的研究,我发现Imagick更有效地处理更大的图像。您将通过允许的内存或最大执行时间。更好的方法是使用Imagick库。检查onfo如何使用Imagick在飞行generate thumbnails with php