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

标签 javascript node.js image-processing png jpeg

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

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

我可以使用 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

最佳答案

使用: 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

关于javascript - 如何检测 Node.js 中损坏的图像文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35085872/

相关文章:

javascript - elementUI Cascader 中无法正确显示

javascript - 如何在 JavaScript 中进行字母数字排序

image-processing - 用于多对象分类的支持向量机

javascript - 如何在 Node js中使用oracle高级队列(OAQ)

opencv - 用于识别图像中对象的对象检测

opencv - 拼接一些图像使用JavaCV

javascript - 避免重复计算优化嵌套for循环的时间复杂度

javascript - 如何设置超时以单独制作动画列表?

javascript - 无法使用 Node.js 向 mysql 插入数据

node.js - 如何连接本地网络内的另一台机器mongodb数据库?