2009-10-07 21 views
22

Me preguntaba si alguien ha realizado alguna prueba con imágenes de fondo. Normalmente creamos un fondo que se repite al menos en una dirección (x o y o ambos).Repetición de la imagen de fondo del sitio web - tamaño frente a la velocidad

Ejemplo
Digamos que tenemos un gradiente de fondo que se repite en la dirección X. La altura del gradiente es 400px. Tenemos varias posibilidades. Podemos crear una imagen lo más pequeña posible (1 píxel de ancho y 400 de alto) o podemos crear una imagen más grande con 400 píxeles de altura.

Observación
Desde gradiente es de 400 píxeles de alto que probablemente no elegir el formato GIF, ya que sólo puede almacenar 256 colores adaptables. Tal vez eso sea claro si nuestro gradiente es sutil, ya que no tiene tantos, pero de lo contrario probablemente almacenaremos la imagen como una imagen PNG de 24 bits para preservar el detalle completo del gradiente.

dilema
¿Hay que crear una imagen de 1 × tamaño de 400 píxeles que se repetirá n veces horizontalmente o debemos crear una imagen de 100 x 400 tamaño de píxeles para acelerar la representación en el navegador y tener un tamaño de archivo de imagen más grande.

So. Tamaño de la imagen frente a la velocidad de procesamiento? ¿Cuál gana? ¿Alguien se preocupa por probar esto? Con respecto a la velocidad de renderizado del navegador y la posible imagen pequeña redibujar el parpadeo ...

+2

Siempre he ido por el tamaño de archivo más pequeño posible, y nunca he tenido ningún problema. Eso es poco científico sin embargo. –

+1

Duplicado: http://stackoverflow.com/questions/1504022/is-there-an-ideal-size-for-background-images – DisgruntledGoat

Respuesta

11

La velocidad de renderizado es el cuello de botella aquí, ya que las fichas más grandes se pueden poner en la caché del navegador.

De hecho, he intentado esto para los principales navegadores, y al menos algunos de ellos se han vuelto notablemente lentos en fichas muy pequeñas.

Así que si aumentar el tamaño del mapa de bits no resulta en ridículamente archivos de gran tamaño, definitivamente me iría con eso. Pruébelo usted mismo y vea. (Recuerde incluir IE6, ya que todavía muchas personas se quedan con él).

Puede lograr un buen equilibrio entre el tamaño del mapa de bits y el tamaño del archivo, pero en general probaría 50x400, 100x400, 200x400 e incluso 400x400 píxeles.

+1

Bueno, supongo que ese degradado con un poco más de ancho (como 50 píxeles) no afectará el tamaño del archivo de manera demasiado drástica. –

+5

Tal vez intente poderes de 2 (es decir, 32 o 64 píxeles de ancho), que a menudo ayudan en este tipo de situaciones. – DisgruntledGoat

+0

gracias por las potencias de 2 tip. Realmente una buena. Voy a tener este consejo en mente. –

0

Pondría el dinero en el cuello de botella siendo la descarga de imágenes en lugar del motor de renderizado que hace el mosaico, así que elija la opción de 1 píxel de ancho.

También el PNG de 24 bits es redundante ya que solo obtiene 8 bits por canal (rojo, verde y azul).

+2

Eso es 2^8 x 2^8 x 2^8 colores posibles que es significativamente mayor que 256. ¿He entendido mal algo por completo? –

+0

En un degradado de un color a otro (suponiendo que solo se usan dos), solo obtendrá 256 colores discretos. ¿Creo? Maldiciones, ahora estoy empezando a dudar de mí mismo. A Photoshop. . . – Pike65

+1

Va a depender de su gradiente, pero tome algunos ejemplos: un gradiente RGB de línea desde RGB (0,0,0) a RGB (255,0,0) solo tendrá 256 colores. RGB (0,0,0) a RGB (255,255,255) podría tener en teoría 3 * 256 sombras, pero es más probable que solo tenga 256. Los colores que están más cerca tendrán menos tonos. – spookylukey

0

Por lo general, prefiero ir por el medio, 1pixel de ancho probablemente hará que su gradiente parezca un poco confuso pero puede hacer algo como 5 píxeles de ancho que da suficiente espacio al degradado para mantener la consistencia y claridad en la página ... pero sugeriría que puede agregar más patrones e imágenes a una sola imagen y luego usar el posicionamiento en segundo plano (css sprites) para colocarlos porque descargar una sola imagen de digamos 50kb tomaría menos tiempo en comparación con 5 imágenes de 40kb ya que el navegador realiza menos solicitudes al servidor ...

+0

No estoy hablando de imágenes de contenido donde los sprites son habituales. Estoy pensando más en fondos de página que NO son sprites y no pueden ser. –

+0

lo siento, tal vez malentendió la pregunta ... tipo de lo tomó en la dirección incorrecta – halocursed

+0

Todavía puede utilizar sprites para esto - puede poner fondos de mosaico horizontal en una imagen una encima de la otra, es decir, una imagen de 5x200 px con dos 5x100 px degradados. – DisgruntledGoat

1

Si las pequeñas dimensiones de una imagen tienen un impacto negativo en la representación, estoy seguro de que cualquier navegador decente enfadaría la imagen internamente varias veces antes del mosaico.

Dicho esto, tiendo a no utilizar dimensiones de imagen de 1 píxel, por lo que puedo ver la imagen claramente sin cambiar el tamaño. La compresión PNG es lo suficientemente buena para manejar esto a un costo muy bajo para el tamaño del archivo, en la mayoría de las situaciones.

0

No he comparado esto, pero apostaría a que en la mayoría de las computadoras modernas la renderización no será un problema, mientras que siempre quiere ahorrar en el tiempo de descarga de la imagen. A menudo voy por el tipo de gráficos 1px.

3

Descubrí que puede haber una gran diferencia en el rendimiento de reproducción del navegador, si tiene una imagen de fondo con un ancho de 1px y la repite. Es mejor tener una imagen de fondo con dimensiones ligeramente mayores. Por lo tanto, una imagen con un ancho de 100 px funciona mucho mejor en el navegador. Esto entra especialmente en juego cuando utiliza una imagen de fondo repetida en una capa que se puede arrastrar en su sitio web. El rendimiento de arrastre es bastante malo con una imagen de fondo que se repite a menudo.

4

Me gustaría señalar que por el costo de enviar un par de filas extra (ejemplo de 1-2 aquí) .8k - 1.6kb (si puedes salirte con 8 bits) más como 2.4kb - 4,0 kb para 24 bits

2 columnas de píxeles más significa que las iteraciones necesarias requeridas para blit el fondo en es cortado a 1/3 para un máximo de 1,6 kb (8 bits) o 4 kb (de 24 bits)

incluso 1 columna extra reduce a la mitad el blitting requerido hasta la mitad del ancho del elemento.

Si el fondo se hace en menos de un segundo para un módem de 56.6k, creo que es lo suficientemente delgado.

Cuestiones relacionadas