【问题标题】:Base64 image compression before sending it to Cloudinary在将其发送到 Cloudinary 之前进行 Base64 图像压缩
【发布时间】:2017-05-17 22:07:06
【问题描述】:

我正在制作一个支持图像上传和用户查看的网络应用程序。我使用 angularjs 作为框架,但是在我发现在单页应用程序框架(angular)中将图像发送到后端非常棘手之后,我选择将图像编译为 base64 并将其发送到后端。

一旦后端抓取到base64图像,它会再次将它发送到Cloudinary,数据库将保存来自cloudinary的响应,这是存储图像属性和url的JSON文件。

到目前为止效果很好,但现在我想在上述任何过程之间再添加一个过程,图像压缩。我对这种方法很陌生。所以我想知道是否有人处理过这个问题并给我一些建议或建议。

感谢您的宝贵时间。

【问题讨论】:

  • 当您使用 Base64 时,您实际上是在增加文件大小。常规 HTTP 压缩对您来说还不够吗?并且......上传带有角度的文件并不是那么“棘手”。看到这个答案:stackoverflow.com/questions/18571001/…
  • 谢谢。我还研究了那个包和方法。但是,我正在处理的表单不仅仅是具有多个输入的表单。但是非常大,并且有许多文件上传输入。似乎在使用此类包时我必须将文本数据和文件数据分开,这最终使我难以扩展应用程序和数据结构。这就是为什么我决定使用 base64,即使它比裸数据还要大。

标签: javascript angularjs node.js cloudinary image-compression


【解决方案1】:

这是我想出来的。希望这会帮助一些在同一问题上苦苦挣扎的人。

为了将图像编译为 base64,我使用了angular-base64-upload。此外,这个包让我们有机会在将 base64 字符串添加到 ng-model 变量之前处理文件。

因此,我使用 Jimp 与 angular-base-64-upload 混合。它工作得很好。 3.5Mb 大小的图像下降到 110kb 左右,质量降低到 50%,宽度降低到 1280px。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-13
    • 2017-03-15
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多