entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Generar Sprite CSS de Imagenes

Hola comunidad heme aqui otra vez, pues veran, el nuevo diseño del sitio que estoy remodelando hasta los simientos de la db lo estoy convirtiendo al final en un CMS entonces necesito sabersi se puede hacer lo siguiente, yo guardo en una tabla secciones en un campo el logo de la seccion lo que en realidad seria el url a la imagen para ponerlo en un background css posicionado en una esquina pero imaginence cuando sean 20 secciones cargaría vente imagenes lo cual no es optimo sin importar el tamaño, por lo que quiero saber si uno puede hacer un generados de Sprite que cada vez que el usuario inserte un nuevo logo mi pagina automaicamente borre el Sprite de secciones anterior, recorra la tabla y saque las url y monte todas las imagenes en una unica Sprite y devuelva para cada seccion el CSS y entonces guardas ese CSS en la db en un campo css y cuando le visiten al usuario la pagina esta cargue automaticamente la imagen del Sprite y ya ta.
Disculpen que sea larga la explicacion de lo que quiero hacer pero que ria que me entendieran. Saludos y experando Ayuda D

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola Dairon,

lo que decís puede hacerse, pero no sé si vale la pena, ya que si bien cargar 20 imágenes no es lo aconsejado, es de esperar que cada sección tendrá más o menos siempre la misma imagen, y una vez cacheada por el cliente, el archivo no se descarga más.

Para implementar lo que querés, tenés dos cuestiones a resolver: una es mantener el sprite, que seguramente será una imagen larga con todos los iconos de las secciones del mismo tamaño, para poder usarlo como sprite.

Podés hacer esto con la biblioteca GD, que te permite crear imágenes a partir de otras con la función imagecopyresized()

Esto te crea el problema del mantenimiento: al borrar una sección, deberás generar de nuevo todo el sprite para sacar una imagen... tal vez lo más cómodo sea, siempre que se agrega, modifica o borra una sección, tener una función que lea todas las imágenes y arme desde cero el sprite.

El otro problema a resolver es que, además de guardar la ruta a la imagen para generar el sprite, tenés que guardar la posición en píxiles que tiene para volverlo a usar.

La segunda cuestión es generar el CSS, pero esto es fácil: podés tener un CSS de extensión PHP, que sea todo estático exepto la parte de la imagen, que se generará leyendo de la DB la posición en píxeles del sprite a contener para armar las reglas. Luego, no es problema que este estilo se llame por ejemplo seccion_1, en donde el 1 se reemplaza por el ID de la sección, de forma tal que sea simple generar programáticamente el uso de la clase para decorarlo.

Te planteo es demasiado general para ilustarlo con código, pero si lo vas a hacer y tenés preguntas puntuales, ponelas por acá!

0voto

dairon comentado

Entendí lo que me dijiste mano, realmente eso es lo que pensé hacer solo que no conocía las librerías y realmente se me había olvidado lo del cache, si creo que lo más obtimo no es el sprite para este caso ya que existe el cache ademas las imagenes serían de unos 64x64 pequeñas no pesan casi y las secciones nunca seran más de 30

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta