如何在Node.js中检测损坏的图像文件?

时间:2016-01-29 13:34:11

标签: javascript node.js image-processing png jpeg

我正在寻找一些通用库来检查下载的图像是否没有损坏。

我找到了使用ImageMagick的https://www.npmjs.com/package/gm

我可以使用ImageMagick中的identify,它会找到完全破碎的图像(我甚至无法打开的图像)。但是也存在部分损坏的图像 - 例如jpeg文件,其中一半图像为灰色,并且没有标记为被gm损坏。

如何在node.js中检查图像是否有损坏?

谢谢!

编辑:

我想要检测的是未完全下载的图像。您可以通过剪切最后n个字节的图像来实现类似的效果。

我想可以通过编程方式检测它,因为在详细模式下识别命令会返回:

identify: Premature end of JPEG file broken_example.jpg' @ warning/jpeg.c/JPEGWarningHandler/352.
identify: Corrupt JPEG data: premature end of data segment broken_example.jpg' @ warning/jpeg.c/JPEGWarningHandler/352.

示例(遗憾的是,imgur会切断损坏的图像,因此我必须上传截图):

Broken image

1 个答案:

答案 0 :(得分:0)

使用: https://www.npmjs.com/package/is-corrupted-jpeg

var isCorrupted = require('is-corrupted-jpeg');
console.log(isCorrupted('./path/to/image/not-corrupted.jpg'));
//=> true
console.log(isCorrupted('./path/to/image/corrupted.jpg'));
//=> false