pixel
pixel
Portada Frikadas Ver comentarios. Leída 531 veces.
Las ciencias avanzan que es una barbaridad.
Arreglillos varios y mejora en las galerías.
Escrito por Reboot el 24.04.2010.
Lista la interfaz para galerías en disco, optimización en la generación de thumbnails y aplicación y hackeo de un montón de chuminadas javascript para presentación bonita de las mismas. Y sólo puedo decir una cosa: Qué pasada.

Hasta ahora las galerías las hacía funcionar sobre ficheros insertados en la base de datos... Sí, sí, dejadme que os lo explique.

No es que sea en absoluto algo funcional, pero fue parte de un experimento que se me ocurrió un buen día: ¿Y si por un casual no puedo asignar permisos a mis directorios y no puedo meter los ficheros provenientes de uploads?

Mucho antes de que me metiera en serio con el explorador de ficheros que programé en php como parte de mi backend, se me ocurrió la feliz idea de meter archivos de imágenes en la base de datos.

La idea era subir un archivo por upload, leerlo, codificarlo en BASE64 para que no de problemas, fraccionarlo en pedazos (chunks) de 64K y meterlos en la base de datos en campos BLOB. Era algo que nunca había hecho y que siempre me picó la curiosidad el saber si se podía hacer. ¡Y vaya que si se podía! No sólo eso, sino que además por aquella época comenzaba a aprender a usar las librerías GD2 de PHP para generación y manipulación de imágenes. Y se me ocurrió que por el mismo precio, podía fabricar thumbnails de distinto tamaño e insertarlos igualmente en la base de datos.

Por supuesto el método es la cosa menos eficiente que os podéis echar a la cara y el proceso de consulta, descifrado y concatenado no merece siquiera el gastar un segundo pensando en él. Pero bueno, lo hice y lo usé. Poco, pero lo usé.

Estas estupideces sirven, aparte de para perder el tiempo, para aprender nuevas técnicas y usar nuevas librerías, como fue el caso, no en balde la imagen del CAPTCHA que os aparece en los comentarios se genera al vuelo con GD2. Soy masoca, lo sé, pero me gusta indagar y ponerme metas que además (y qué coño, es verdad) por lo general termino alcanzándolas.

Igual que me fabriqué un scroll por javascript con burbuja que funcionaba a la perfección con NS, IE y FF o tropecientas mil chorraditas con las que aprendes.

Pero esta vez no tenía mucho tiempo, ni me apetecía devanarme los sesos demasiado, así que para las galerías en disco reutilicé y optimicé unas funciones que tenía hechas de cuando el invento de los uploads a base de datos, que ahora generan thumbnails que se guardan en disco y que liberan al servidor de toda la carga que le metía antes.

Y para la presentación, quería intentar probar uno de esos scripts que amplian imágenes sin recargar páginas y algún otro que me fabricara una especie de barra con las miniaturas. Así que me puse a buscar por la red y encontré varias cosas.

El "slider" con las miniaturas me lo fabrica una monería llamada SlideItMoo con el que sólo tenía que meter los elementos en unas capas con un nombre determinado, metía un par de capas más con otros nombres concretos y el script se las apaña ya él solo de fabricarme la barra. Alucinante. Un par de retoques por aquí, unos márgenes a mi gusto por allá, un fondo molón por acá y listo.

Luego venía la ampliación de la imagen, para lo que encontré varios scripts. Por un lado está el Lightbox , fuente y origen de todos los demás que no llegué a probar puesto que había otras opciones mucho más ligeras.

Por otro lado me encontré con Slimbox, una versión aligeradísima del Lightbox , Floatbox otra versión del Lightbox pero anabolizada y, tras mucho buscar, encontré el Lytebox, otra versión mínima de Lightbox pero sencillísima de implementar, y con una sorpresa añadida.

¿Por qué me decanté por Lytebox? Muy sencillo:
1. El código no está ofuscado ni metido en una línea, ergo es fácil de modificar.

2. Floatbox, que era la caña, resulta que me salta y me dice que no funcionará al tener activado el modo "quirks". Y es que con el diseño prehistórico de tablas, o uso el modo laxo o se me va todo a tomar por culo.

3. Slimbox es genial, pero sólo te muestra las imágenes a tamaño completo y tiene la manía de reposicionar constantemente la capa flotante, por lo que si la imagen es más grande que la pantalla, no la puedes llegar nunca a ver entera.

4. Lytebox era sencillo, ligero y, pese a tener un par de bugs y carencias que tuve que arreglar, permite redimensionar la imagen y usa las mismas librerías que el SlideItMoo.

¿Qué arreglos le hice al Lytebox? Bueno, en principio no te permitía la redimensión de la imagen que te está mostrando, pero con un par de chapus por ahí, lo conseguí hacer. Debería optimizar el cómo lo hace (pues recarga la imagen) pero así funciona y con eso me vale. Eso y un par de cosillas que no me gustaban (como la propagación de eventos cuando son capturados por una función que se supone final del mismo) y poco más.

Y eso es todo, más feliz que una perdiz, llevo cinco días durmiendo un par horas escasas. ¡Como en los viejos tiempos!

Así que, ale, disfrutad con la selección de imágenes de Range Murata que os he dejado y que usa el nuevo interfaz.

Es exactamente igual que ir a Danbooru, pero en bonito. :D


PD: Bendito Firefox 3.6 que no pierde los datos de los formularios si le das sin querer a "atrás".


Palabras clave. Kmhg (29) Cms (2) Lightbox (1)
COMENTARIOS
AÑADIR UN COMENTARIO
Nombre:
Se permite el uso de ciertos BBcodes:
[b], [i], [u], [s], [br], [url], [img],
[spoiler], [irony]

Emoticonos disponibles:
    :hola: >_< :silbar: x3 :latigo: :3 : palito: :arbusto:
E-mail: (*)
URL:
Recuerda mis datos para la próxima vez:
Comentario:
ENVIAR   BORRAR    TRADUCSION
(*)Nota: La dirección de e-mail permanecerá oculta y sólo se usará para conseguir (si tienes disponible) tu gravatar.
pixel