0

我正在做一个需要图像数据库的项目。许多图像比应用程序的 90% 用例所需的要大,但是,在某些情况下,我需要原始质量图像。因此,在上传/保存到文件系统之前,我无法缩小图像(MongoDB 数据库)。

我的计划是在从 MongoDB 检索原始图像之后但在实际将其从 Node 服务器发送到 Angular 客户端之前减小图像的大小。

我找不到使用 Sharp 或 Jimp (似乎是领先的竞争者)的例子,我正在努力使任何一个工作:

  • 当我使用 Jimp 时,我收到有关构造函数的错误。
  • 当我使用 Sharp 时,它会抛出错误,因为它不喜欢输入 - 它似乎想要原始的 JPEG 或 PNG 作为输入,显然我没有,因为返回的图像是一个带有缓冲区二进制字段的对象。

谁能指出我如何实现这一目标的正确方向?

4

1 回答 1

0

最后,在与上司讨论了多种策略后,我将每个图像都保存为一个高清图像(base64)字符串和一个缩小的图像字符串。我很幸运,唯一一次需要高清图像时,我通过 id 调用单个图像,因此我查询数据库仅返回前端所需的图像字符串。

如果将来有人查询这个或类似的东西,我会在后端使用 Sharp 来帮助调整图像大小。

Jimp 和 Sharp 中的错误最初来自尝试使用二进制文件。最后,将图像从偏移量转换为字符串更简单。

于 2020-06-26T16:16:46.967 回答