【问题标题】:Image compression before uploading in android在android中上传之前的图像压缩
【发布时间】:2016-06-01 22:20:43
【问题描述】:

我的应用中有一个图片上传模块,用户可以在其中从图库中选择图片。问题是图像的大小可以达到 10MB。这是非常大的,我想在上传之前对这些图像应用一些压缩技术。

我在互联网上做了一些研究,发现了一些像 ImageMagick、ImgMin 这样的库,它们可以轻松优化图像。有什么方法可以在我的 android 项目中使用它们而无需任何后端服务器的参与。

参考文献:

ImgMin https://github.com/rflynn/imgmin

ImageMagick http://www.imagemagick.org/script/index.php

【问题讨论】:

  • 您是否尝试过这种方式:将您的图像转换为Base64 格式。然后你会得到一个字符串。如果字符串太大,例如 20 mb 将字符串拆分为部分并上传它们。如果你愿意,我可以给你 Base64 代码。
  • 我已经在使用 S3 sdk 来上传图片,它会自动管理块。问题是,从相机拍摄的图像可能会变得很大,并最终包含大量我不想要的无用数据。 ImgMin(正如我上面提到的)使用我想要实现的确切技术。

标签: android image image-processing


【解决方案1】:

您可以尝试的一个简单选项是来自 Bitmap 类的 this 方法。

您可以选择位图的压缩格式并优化质量或文件大小。缺点是您需要获得一个 Bitmap 实例来开始压缩,这可能是您不想做的事情。

【讨论】:

  • 没错!位图转换也会导致图像质量的显着损失,这与它提供的尺寸压缩是不可协商的。
  • @SouravChandra 您可以将 ImageMin 用于独立客户端并提供 JNI 包装器。这不是超级简单,但我认为它可以成为你的选择。另一件事是尝试 ImageMagick 的 Java 接口 - 您发布的页面中有一个链接。
  • 是的,兄弟,我刚刚发现要实现这一目标还有很多工作要做。
猜你喜欢
  • 2021-01-03
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 2019-02-10
相关资源
最近更新 更多