从服务器发送压缩图像并在客户端

时间:2016-06-07 11:12:38

标签: image webserver compression android-volley http-compression

我正在开发一个项目,使用CakePHP 3用于服务器端,Android用于客户端。在这个项目中,我必须从服务器向应用程序发送大量产品图像。当应用程序请求产品的图像时,服务器在数据库中搜索图像的URL并通过json响应将它们发送到应用程序。然后,在应用程序中,我使用Volley库中的NetworkImageView加载图像。

此过程有效,但图像尺寸较大,因此如果您使用4g等移动网络,则会消耗大量数据。我不能失去图像质量,所以我不能过多地对待图像。

我想的是在服务器端压缩(以某种方式)图像,通过json发送字节数组并在应用程序中解压缩它们,这样我就可以最大限度地减少数据消耗。

我找不到上述内容的任何信息,我不确定这是不是正确的方法。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

  

我想的是在服务器端压缩(以某种方式)图像,通过json发送字节数组并在应用程序中解压缩它们,这样我就可以最大限度地减少数据消耗。

JSON将增加并且不会因为显而易见的原因而降低需要发送的数据量。它是您使用案例中的信封,JSON的工作方式将添加更多数据。检查JSON规范。

您想在您的网络服务器(Nginx here)上启用gzip压缩,请查看Google或superuser.com以获取更多详细信息。

但是,当您发送20mpx图像时,这对移动设备的使用不会产生显着影响。我会发送图像,并在用户放大时仅在需要时发送更大版本。猜猜这是可行的。