¿Cuál es el tamaño de image más grande que muestra el browser iOS sin muestrear?

Lo que dice el título; básicamente, si visualiza una image en el browser iOS (por ejemplo, el iPhone), cuando las dimensiones de la image superan un cierto límite, la image se networkinguce y se muestra a una fracción de la resolución original (es decir, 1/n la cantidad de píxeles del original).

Esto es, supongo, una forma de evitar estrellar el browser cuando los tamaños de image se vuelven demasiado grandes debido a quedarse sin memory.

Mi pregunta es: ¿cuál es el límite superior de las dimensiones de la image antes de que WebView (o el browser) comience a muestrear cada n -ésimo píxel?

EJEMPLO: cuando se muestra una image de 5760 × 1800, se networkinguce a 1440 × 450 en el browser (una relación 1: 4).

Acabo de terminar algunas testings y parece que iOS (en iPhone 3GS con iOS 4.2.1 al less) networkingujo la image cuando alcanzó el límite de 1024px . Cualquier image por encima de este tamaño tiene sus píxeles muestreados por cada n -ésimo píxel, donde n es el divisor más pequeño que produce una dimensión <= 1024px.

Por alguna razón, Safari mobile está networkinguciendo el tamaño pero agradeciendo que haya una forma de forzar el tamaño real en el CSS usando:

 -webkit-background-size: widthpx heightpx; -webkit-background-size:980px 2574px; /* (simply put in the exact size of the wrapper image) */ 

originalmente encontrado aquí: http://srihosting.com/blog/web-development/ios-safari-background-image-size-problem/

De acuerdo con la documentation de Apple, hay una pequeña diferencia entre JPEG y otros formattings de file.

  • Para GIF, PNG y TIFF, si el dispositivo tiene less de 256 MB de RAM, el tamaño máximo es de 3 megapíxeles. Si el dispositivo tiene más de 256 MB, el límite es de 5 megapíxeles.
  • Para JPEG, el tamaño máximo es siempre de 2 megapíxeles.

Por lo tanto, una image JPEG puede tener un máximo de 2 * 1024 * 1024 píxeles (2'097'152).

Si estoy en lo cierto, aquí está la matemática necesaria para encontrar la dimensión de image más grande:

 ratio = √(2 * 1024 * 1024) / √(5760 * 1800)= √2097152 / √10368000 ≈ 1448.154 / 3219.937 ≈ 0.449746 optimal_width = 5760 * ratio ≈ 2590 // it's better to approximate 1 pixel smaller optimal_height = 1800 * ratio ≈ 809 // else the image is quickly too big since we multiply each dimensions optimal_size = 2590 * 809 = 2095310 // less than 2097152 

fuente de las restricciones: https://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html (la sección "Conoce los límites de resources iOS")