سؤال

أرغب في تنزيل صورة من "شبكة" وتعيينها كخلفية للمستخدمين. هذا يعمل بشكل رائع على شبكة Wi-Fi ، وبعض شبكات 3G ، ولكن يبدو أن أخرى (T-Mobile UK ، بالتأكيد) تضغط الصور قبل إرسالها.

يكون هذا التأثير ملحوظًا عند استخدام المتصفح أيضًا - ومع ذلك ، إذا ضغطت منذ فترة طويلة على صورة وحفظها ، عند المشاهدة في المعرض ، فإنه لا يضغط على الإطلاق ، أو أقل إلى حد كبير. أريد أن أكون قادرًا على القيام بذلك في تطبيقي.

أفترض أن الأمر يتعلق برؤوس HTTP ، ولكن من تلك التي قمت بتعديلها ، لم يحدث أي فرق.

هل يمكن لأي شخص مساعدتي هنا؟

سؤال مماثل هنا Android: bitmapfactory.decodeByTearray يعطي صورة نقطية بكسل ولكن لم يحل.

هل كانت مفيدة؟

المحلول

هل حاولت إعداد رأس عدم التآكل؟ هذا قد يعمل على بعض الشبكات.

يمكنك أيضًا محاولة طلب العميل للصورة مرة ثانية ، وقد يتخطى هذا أيضًا الضغط.

نصائح أخرى

تقوم بعض شبكات 3G بضغط الصور لحفظ النطاق الترددي. في بعض الأحيان لا يكرمون لا مخبأ HTTP رأس. لتجاوزها ، يمكنك

  • BASE INLINE 64 صورتك باستخدام بيانات البيانات
  • يقدمها كـ HTTPS أو عبر منفذ HTTP غير القياسي

مناقشة كاملة حول هذا الموضوع: http://blog.sebcante.com/2012/01/prevent-image-cression-from-3g.html

تحديد أ no-cache توقف Header عن العمل على بعض مقدمي الخدمات مثل Vodafone Germany قبل بضع سنوات.

بدلاً من ذلك ، يقدم هؤلاء مقدمي الخدمات واجهة ويب حيث يمكنك ضبط الإعدادات بنفسك. لفودافون ألمانيا فقط اذهب إلى Performance.vodafone.de وسيتم الترحيب بك بحوار الإعدادات الأساسية ، ولكن يمكنك أيضًا اختيار خيار "إعدادات الخبراء" لتحكم أكثر غرابة وخيارات متقدمة.

Basic settings

Advanced settings

روابط لمقدمي الخدمات والبلدان المختلفين أو القوائم الكاملة مرحب بها كثيرًا!

إذا كان لديك تحكم في الصورة التي يتم تنزيلها للمستخدم ، فقد ترغب في وضعه في ملف مضغوط بما في ذلك صورتك ، واطلب من الكود الخاص بك تفريغ الصورة ، وتعيينها كخلفية. سوف تكون متأكدًا من عدم تطبيق أي شبكة أي تدهور بهذه الطريقة.

ولكن بالطبع ، إذا لم يكن لديك تحكم في المعرض ، يمكن للمستخدم الاختيار من بينها ، فإن هذا الحل لا ينطبق ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top