如何将 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(它们似乎是主要竞争者)的示例,而且我正在努力使任何一个工作:
- 当我使用 Jimp 时,我收到关于构造函数的错误。
- 当我使用 Sharp 时它会抛出错误,因为它不喜欢输入 - 它似乎想要
原始 JPEG 或 PNG 作为输入,显然我没有,因为返回的图像是一个带有缓冲区二进制字段的对象。
任何人都可以为我指出正确的方向来实现这一目标吗?
最后,在和我的上司讨论了多种策略之后,我把每张图片都保存了一个高清图像(base64)字符串,一个缩小图像字符串。我很幸运,因为我唯一一次需要高清图像我是通过 id 调用单个图像,因此我查询数据库 return 只有前端需要的图像字符串。
如果将来有人查询这个或类似的东西,我会在后端使用 Sharp 来帮助调整图像大小。
Jimp 和 Sharp 中的错误最初来自尝试使用二进制文件。最后从偏移量将图像转换为字符串更简单。
我正在做一个需要图像数据库的项目。对于 90% 的应用程序用例,许多图像比它们需要的要大得多,但是,在某些情况下,我需要原始质量 image.Therefore,我无法在 [=26= 之前缩小图像] 到文件系统(MongoDB 数据库)。
我的计划是在从 MongoDB 检索原始图像之后但在实际将其从节点服务器发送到 Angular 客户端之前减小图像的大小。
我找不到使用 Sharp 或 Jimp(它们似乎是主要竞争者)的示例,而且我正在努力使任何一个工作:
- 当我使用 Jimp 时,我收到关于构造函数的错误。
- 当我使用 Sharp 时它会抛出错误,因为它不喜欢输入 - 它似乎想要 原始 JPEG 或 PNG 作为输入,显然我没有,因为返回的图像是一个带有缓冲区二进制字段的对象。
任何人都可以为我指出正确的方向来实现这一目标吗?
最后,在和我的上司讨论了多种策略之后,我把每张图片都保存了一个高清图像(base64)字符串,一个缩小图像字符串。我很幸运,因为我唯一一次需要高清图像我是通过 id 调用单个图像,因此我查询数据库 return 只有前端需要的图像字符串。
如果将来有人查询这个或类似的东西,我会在后端使用 Sharp 来帮助调整图像大小。
Jimp 和 Sharp 中的错误最初来自尝试使用二进制文件。最后从偏移量将图像转换为字符串更简单。