Как избежать сжатия изображения в некоторых сетях 3G - PullRequest
2 голосов
/ 03 июля 2010

Я хочу скачать изображение из сети и установить его в качестве фона пользователя. Это прекрасно работает по Wi-Fi и некоторым сетям 3G, но другие (наверняка T-Mobile UK) сжимают изображения перед их отправкой.

Этот эффект также заметен при использовании браузера - однако, если вы долго нажимаете на изображение и сохраняете его, при просмотре в галерее оно либо вообще не сжимается, либо существенно меньше. Я хочу быть в состоянии сделать это в моем собственном приложении.

Я предполагаю, что это как-то связано с заголовками HTTP, но ни один из тех, что я модифицировал, ни один не изменил.

Может кто-нибудь помочь мне здесь?

Подобный вопрос здесь Android: BitmapFactory.decodeByteArray выдает растровое изображение с пикселями , но не разрешено.

Ответы [ 4 ]

4 голосов
/ 03 июля 2010

Вы пробовали установить заголовок без кэширования?Это может работать в некоторых сетях.

Вы также можете попробовать сделать так, чтобы клиент запросил изображение во второй раз, это также может пропустить сжатие.

2 голосов
/ 15 января 2012

Некоторые сети 3G сжимают изображения для сохранения полосы пропускания. Иногда они даже не соблюдают заголовок no cache http. Чтобы обойти их, вы можете

  • встроенная база 64 вашего изображения с использованием data-uri
  • обслуживать их как https или через нестандартный http-порт

Полная дискуссия по этому поводу: http://blog.sebcante.com/2012/01/prevent-image-compression-from-3g.html

1 голос
/ 05 февраля 2014

Настройка заголовка no-cache перестала работать на некоторых провайдерах, таких как Vodafone Germany, несколько лет назад.

Вместо этого эти провайдеры предлагают веб-интерфейс, в котором вы можете настроить параметры самостоятельно.Для Vodafone Germany просто зайдите на performance.vodafone.de , и вы увидите диалоговое окно основных настроек, но вы также можете выбрать опцию «экспертные настройки» для более детального управления и расширенных опций.

Basic settings

Advanced settings

Ссылки для разных поставщиков и стран или целые списки очень приветствуются!

0 голосов
/ 03 июля 2010

Если у вас есть контроль над изображением, которое загружает пользователь, вы можете поместить его в ZIP-файл, включающий ваше изображение, сделать так, чтобы код распаковал изображение и установить его в качестве фона.Вы были бы уверены, что ни одна сеть не применяет такую ​​деградацию таким образом.

Но, конечно, если у вас нет контроля над галереей, из которой пользователь может выбирать, это решение не применимо ...

...