如何将 reduced/optimised 图像从节点服务器发送到 Angular 客户端(但将原始质量保存到数据库)

How to send reduced/optimised images from node server to Angular client (but save original quality to database)

我正在做一个需要图像数据库的项目。对于 90% 的应用程序用例,许多图像比它们需要的要大得多,但是,在某些情况下,我需要原始质量 image.Therefore,我无法在 [=26= 之前缩小图像] 到文件系统(MongoDB 数据库)。

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

我找不到使用 Sharp 或 Jimp(它们似乎是主要竞争者)的示例,而且我正在努力使任何一个工作:

任何人都可以为我指出正确的方向来实现这一目标吗?

最后,在和我的上司讨论了多种策略之后,我把每张图片都保存了一个高清图像(base64)字符串,一个缩小图像字符串。我很幸运,因为我唯一一次需要高清图像我是通过 id 调用单个图像,因此我查询数据库 return 只有前端需要的图像字符串。

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

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