【问题标题】:Android - Reduce image file size before upload to server with Base64Android - 在使用 Base64 上传到服务器之前减小图像文件大小
【发布时间】:2016-09-06 15:31:49
【问题描述】:

在使用 base64 上传到服务器之前,我正在尝试减小库中的文件大小。我已经尝试了来自 stackoverflow 的所有建议以及我在互联网上找到的其他地方,但没有成功。

对于大于 2MB 的图像,一旦写入服务器,它们的大小似乎会减小(低至约 500KB)。但是,对于

【问题讨论】:

  • 你可以使用GZip
  • 我不想使用 GZip,因为我想永久减小文件大小(即时)并发送到服务器。无论原始大小是多少,理想情况下都在 100KB 以下,因为我将再次检索它们以填充列表视图。
  • 检查this
  • 我已经看到了。让我再追一遍。从记忆中,我想我无法编译它。

标签: android


【解决方案1】:
private String string(Bitmap bitmap){
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 50, stream);
    return Base64.encodeToString(stream.toByteArray(), Base64.DEFAULT);
}

将位图传递给字符串方法,将其转换为字符串。 compressFormat 是 PNG 格式,它会自动降低大小和质量。

【讨论】:

  • 这是我一直在尝试的。我尝试使用 Bitmap.CompressFormat.JPG 而不是 PNG 的区别在哪里。我相信它减少了文件大小。然而,一旦通过 base64 编码并发送到服务器,写入磁盘,它就会扩展到大约 500KB(某些情况下比原来的要大)。看来从服务器端解码base64确实是在扩展JPG。
  • 我也发生了同样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
  • 2013-06-17
相关资源
最近更新 更多