在某些3G网络上避免图像压缩

时间:2010-07-03 09:42:06

标签: android image networking http-headers 3g

我想从'net下载图像并将其设置为用户背景。这在wi-fi和一些3G网络上运行良好,但其他(T-Mobile UK,肯定)似乎在发送之前压缩图像。

这种效果在使用浏览器时也很明显 - 但是,如果您长时间按下图像并进行保存,则在图库中查看时,它根本不会被压缩,或者根本不会被压缩。我希望能够在我自己的应用程序中执行此操作。

我认为它与HTTP标题有关,但是我修改的标题与之没有关系。

任何人都可以帮助我吗?

此处有类似问题Android: BitmapFactory.decodeByteArray gives pixelated bitmap,但尚未解决。

4 个答案:

答案 0 :(得分:4)

您是否尝试过设置无缓存标头?这可能适用于某些网络。

您也可以尝试让客户端第二次请求图像,这也可以跳过压缩。

答案 1 :(得分:2)

一些3G网络正在压缩图像以节省带宽。有时他们甚至不尊重没有缓存 http标头。 要绕过它们,你可以

  • 使用data-uri
  • 对您的图像进行内嵌基础64
  • 将其作为https或通过非标准http端口
  • 提供

关于它的充分讨论:http://blog.sebcante.com/2012/01/prevent-image-compression-from-3g.html

答案 2 :(得分:1)

几年前,设置no-cache标题已停止在某些提供商(如Vodafone Germany)上工作。

相反,这些提供商提供了一个网络界面,您可以自己调整设置。对于Vodafone Germany,只需转到performance.vodafone.de,您将看到基本设置对话框,但您也可以选择“专家设置”选项,以获得更精细的控制和高级选项。

Basic settings

Advanced settings

非常欢迎不同提供商和国家/地区或整个列表的链接!

答案 3 :(得分:0)

如果您可以控制用户下载的图像,您可能需要将其放入包含图像的ZIP文件中,让代码解压缩图像,并将其设置为背景。您可以确定没有网络以这种方式应用任何降级。

但是,当然,如果您无法控制用户可以选择的图库,则此解决方案不适用...