Node.js - 检测图像优化

Node.js - Detecting Image Optimization

我正在构建一个允许用户将图像上传到 post 的应用程序。

我的问题是其中一些图像超过 10MB。我目前正在使用降低文件大小的 Node.js 模块优化这些。它通过重新创建质量得分为 70 的图像来实现这一点。

我遇到的问题是有些用户在上传前优化了图片。如果图像已经优化,我不想再降低质量。

无论如何我可以在处理图像之前检测图像的质量吗?

如果你使用 multer,你可以在 size 字段中看到,如果你只有缓冲区,你可以使用 .length 方法,例如:

buffer.length() // return 255bytes or 255000 255Kb

使用 imagemagick 可以先识别大小,然后将其转换为小尺寸或裁剪