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

Send compressed images from server and uncompress them in client

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

这个过程是可以的,但是图片比较大,如果你用4g这样的移动网络会消耗很多流量。不能丢画质,所以不能对画质过度。

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

我找不到关于我上面描述的任何信息,我不确定这是否是正确的方法。任何帮助将不胜感激。

What I was thinking was to compress (somehow) the images in server side, send the array of bytes through json and uncompress them in the app, so I could minimize data consumption.

JSON 将 增加 而不是减少需要发送的数据量,原因很明显。它是您用例中的一个信封,JSON 的工作方式将添加 more 数据。检查 JSON 规范。

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

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