将图像作为base64编码的bytearray传递或仅传递它的路径

时间:2016-02-13 14:09:12

标签: android

我有一个Android应用程序试图从服务器获取图像。

那么这些中的哪一个会提供更好的性能?为什么? (在时间和空间方面。)

  • 传递字节数组作为对Android应用程序的响应

  • 仅传递服务器中图像的路径作为响应,并从Android应用程序中的URL检索图像。

3 个答案:

答案 0 :(得分:0)

我建议只保存/检索图像从/到服务器的路径。

有时图像尺寸可能太大,无法将blob图像检索到您的Android应用,但如果您将图像的路径存储到服务器,则不会遇到问题。

我总是将图像存储在一个文件夹中,只将图像路径保存到服务器中。它使数据库大小变小,查询数量少,查询结果大小小,这意味着数据库执行速度更快。

答案 1 :(得分:0)

将图像编码为base64字符串并将其包含在您的响应中是一种常见做法。

但是,如果您选择仅包含图像的URL,则可以从传输的大小/速度中受益,因为base64流的大小是原始二进制流的4/3(开销为33%)。

此外,在这种情况下,您可以缓存图像。

答案 2 :(得分:0)

答案取决于图像的质量及其大小......假设您创建了一个图像库应用程序,从服务器获取图像,并且您需要非常高质量的可下载图像....那么您应该使用图像路径

BUT

如果你有一个只使用图像作为缩略图的应用程序,或者如果用户没有使用图像,你可以使用base64编码的图像,因为它的加载时间非常快,重量提升是由应用程序完成的,而不是网络...即通过路径加载整个图像需要时间和大量数据,而base64编码图像只是一个小字符串,将由应用程序转换为图像,并将加载时间最小化..