2010-12-05 22 views
15

Quiero mostrar una página que contiene aproximadamente 6000 miniaturas de imágenes diminutas (40x40 cada una). Para evitar tener que hacer 6000 solicitudes HTTP, estoy explorando sprites CSS, es decir, concatenando todas estas miniaturas en una tira larga y usando CSS para recortar las imágenes requeridas. Desafortunadamente, descubrí que los archivos JPEG no pueden tener más de 65500 píxeles en una dimensión. Cauteloso de más límites en la pila de la web, me pregunto: ¿Alguno de los siguientes no puede hacer frente a una imagen con dimensiones de 40x240000?¿Dimensiones máximas de la imagen en una especificación de navegador/CSS?

  • Internet Explorer
  • Opera
  • especificación WebKit
  • Cualquier CSS
  • Cualquier especificación HTML
  • La especificación PNG

Editar: el propósito de esto es simplemente para mostrar una colección de imágenes completa a la vez, que requiere que el usuario tenga que desplazarse como máximo. Quiero que las "micro-miniaturas" fluyan en un diseño de CSS existente, así que no puedo usar una imagen rectangular grande. No quiero que el usuario tenga que hacer clic en varias páginas para ver todo. El número total de píxeles no es tan grande, solo el doble de lo que cabría en una pantalla de 2560x1600. El tamaño total del archivo de todas las micro-miniaturas es de solo un par de megabytes. Suponiendo que cada imagen se manipula sin comprimir en la memoria del navegador, tomando 8 bytes de almacenamiento por píxel (RGBA más un 100% de factor de rechazo), estamos hablando de un uso de RAM de cientos de megabytes; no es irracional para una aplicación especializada en el año 2010. Lo único irrazonable es el volumen de solicitudes HTTP que se generarían si todas las miniaturas se envían individualmente.

+0

He aquí una pregunta: ¿por qué diablos quieres hacer eso? – Jere

+0

Oh. Mi. Dios. --- – neo2862

+0

Esto es profundamente desaconsejable: ¿hay * realmente * ninguna razón lógica para dividir esto en varias páginas? –

Respuesta

17

Bueno, Safari/iOS enumera estos límites:

  • el tamaño máximo de los GIF decodificada, PNG, y las imágenes TIFF son de 3 megapíxeles. Es decir, asegúrese de que el ancho * alto ≤ 3 * 1024 * 1024. Tenga en cuenta que el tamaño descodificado es mucho mayor que el tamaño codificado de una imagen.

  • El tamaño de imagen decodificado máximo para JPEG es de 32 megapíxeles con submuestreo. Las imágenes JPEG pueden tener hasta 32 megapíxeles debido al submuestreo, que permite que las imágenes JPEG se decodifiquen a un tamaño que tenga un decimosexto número de píxeles. Las imágenes JPEG de más de 2 megapíxeles se submuestrean, es decir, se decodifican a un tamaño reducido. El submuestreo JPEG permite al usuario ver imágenes de las últimas cámaras digitales.

  • Los archivos de recursos individuales deben ser inferiores a 10 MB. Este límite se aplica a HTML, CSS, JavaScript o medios no dirigidos.

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html

3

Según su actualización, aún así realmente recomiendo no utilizar este enfoque. ¿No crees que hay una razón por la que la búsqueda de imágenes de Google no funciona así?

Como tal, yo recomendaría simplemente cargar imágenes según sea necesario a través de Ajax. (es decir: cuando el usuario se desplaza por debajo del conjunto de imágenes actualmente visible). Aunque utilizará más conexiones, significará que puede tener miniaturas de tamaño razonable y, como enfoque general, es mucho más manejable que tener que volver a generar pre imagen en miniatura -generated "hojas" en el back-end cuando se añade una nueva imagen, etc.

+2

Middaparka sugiere el mejor enfoque para cargar 6000 imágenes en una sola página, el método se llama Carga diferida de imágenes, revise Google para obtener toneladas de recursos y plugins jQuery muy fáciles de usar y de http://google.com/search?q = vago + imagen + carga –

Cuestiones relacionadas