繁体   English   中英

PNG文件上的PHP Imagick致命错误

[英]PHP Imagick Fatal Error on PNG file

我有脚本创建缩略图,今天的问题是某些图像在此行产生致命错误:

$im = new imagick($filename);

以下是错误消息-

致命错误:在common.php:370中,未捕获的异常'ImagickException'和消息'corrupt image`imagename.png'@ error / png.c / ReadPNGImage / 3789'

0 common.php(370):Imagick-> __ construct('...')

经过一番研究,我发现这可能是imagick带有一些png文件的错误,这是第一次发生,因此可能非常罕见

如何处理此错误,使其不会停止脚本?

我曾考虑过验证图像格式,但没有找到任何有效方法。

如何处理此错误,使其不会停止脚本?

如注释中所指出的,您需要处理异常以允许脚本继续。

try {
    $im = new Imagick($filename);
} catch (ImagickException $e) {
    $im = null;
    // .. handle error ..
}
if ($im) { // .. do work ..

我曾考虑过验证图像格式,但没有找到任何有效方法。

Imagick::pingImage方法可帮助识别有关图像的元信息。 这可用于确保文件符合应用程序的期望-无需将图像数据解码到内存中。

但是,在解码子例程期间,您使用的图像似乎具有不良的块数据,因此对图像执行ping操作不会捕获该图像。 损坏的图像很常见,您的解决方案应该通过错误处理来预料到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM