PHP GD如何优雅地处理损坏的图像

时间:2013-02-25 20:38:31

标签: php jpeg gd wkhtmltoimage

我有一个JPEG图像库我试图使用PHP的GD进行管理。一个特殊的JPEG图像给我带来了麻烦。它标识尺寸为32,768 x 1,024像素。磁盘上的映像只有1.9 MB。其他图像处理工具(如我的Mac上的Finder和Preview)以及ImageMagick处理得很好。然而,当我的系统调用imagecreatefromjpeg()时,我得到一个经典的"允许的内存大小耗尽"致命的例外。我相信图像已损坏。它应该是使用wkhtmltoimage创建的网页的1024x1024快照。

通常,答案是增加PHP的memory_limit。但是我已经很大了,只有256MB。

我能做些什么来抢先检测这种类型的图像损坏并优雅地处理它?如果我添加" @"在imagecreatefromjpeg()调用之前,PHP只会死于" 500内部服务器错误"代替。我无法使用try/catch,因为它是一个致命的错误。

FWIW,这是ImageMagick的identify工具如何描述它:

myimage.jpg JPEG 32768x1024 32768x1024+0+0 8-bit sRGB 1.948MB 0.000u 0:00.000

我想我可以做if ($width == 32768) { ... },但那是骇人听闻的。 可以是具有该宽度的图像。

还有其他想法吗?

0 个答案:

没有答案