[英]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.