8 de Mayo, 2006

Cómo usar gallery.sh

Me han preguntado sobre cómo funciona el script que empleo para gestionar las galerías de fotos de blackshell, y me ha llamado la atención lo confuso que se ve el tema. Es que no expliqué cómo funcionaba el invento cuando publiqué el programa.

Voy a subsanar ese pequeño error con una guía más o menos detallada para trabajar con gallery.sh, por si a alguien le resulta útil.

Funcionamiento general

Me surgió la necesidad de tener una galería de fotos que fuera muy ligera en consumo de CPU y memoria, porque por aquel entonces estas páginas las servía un Pentium a 100MHz. ¿Qué hay más rápido y ligero que páginas estáticas XHTML?

Así que programé un script shell de lo más sencillo (parte de su atractivo ese: resulta fácil de modificar y adaptar), que generaba una galería estática con un mínimo de posibilidades respecto a navegación.

Galería de ejemplo
La primera galería generada, en su página principal

El uso básico del script es sencillo: indicamos un título para la galería, dónde están las fotos originales (al tamaño máximo que tendrán) y el directorio donde irá a parar la galería generada. Esa galería se puede subir por FTP o similar a cualquier servidor de páginas web, sin necesidad de disponer allí de nada especial: son páginas XHTML estáticas.

Requisitos

Necesitaremos un entorno shell POSIX sano :). No uso nada raro, así que esta parte es fácil de satisfacer con cualquier sistema tipo UNIX. El segudo requerimiento es convert; que está en el paquete de tratamiento de imágenes Image Magick, empaquetado para probablemente cualquier distribución (también tiene página web).

Por supuesto que necesitamos la última versión de gallery.sh, y ya opcionalmente podemos emplear un índice de galerías que necesita PHP en el servidor (solo hace falta editar la variable $REAL_BASE y grabarlo como index.php en el directorio superior a las galerías).

Uso básico con un ejemplo

Partimos de un directorio con la fotos que queremos poner en la galería.

El tamaño de las fotos originales se respeta, así que es posible que necesitemos escalarlas si no queremos publicar las fotos con varios megapixeles :). Las fotos pequeñas para el ínidice de la galería tienen por defecto 128 pixeles de ancho y se generan automáticamente, por lo que nos olvidamos de ellas.

Podemos usar convert para ajustar las fotos originales antes de usar gallery.sh:

$ cd ~/fotos_originales/
$ mkdir fotos500px
$ for f in *.jpg; do convert -resize 500 $f fotos500px/`basename $f`; done

Con este comando, y algo de paciencia... que convert es un poco lento, tenemos un directorio con las fotos a 500 pixeles de ancho (el alto se ajusta automáticamente respetando el aspecto original).

Ahora solo tenemos que usar gallery.sh:

$ mkdir galeria_prueba
$ ~/bin/gallery.sh "Probando" ./fotos500px ./galeria_prueba
4%
9%
14%
...
90%
95%
100%
Done!

Con esto ya tenemos la galería en el directorio galeria_prueba, con un índice de fotos con thumbnails y una página por fotografía, con navegación básica (volver al índice, anterior y siguiente).

Galería de ejemplo generada
Ya tenemos la galería creada

Uso avanzado

Me da un poco de risa lo de uso avanzado, porque no lo es en absoluto ;), pero veamos un poco cuáles son las posibilidades que da el script sin llegar a tocar su código.

Si ejecutamos el script con la opción -h podemos ver una especie de manual donde nos explica todas las opciones, sobretodo en el apartado de configuración.

Es mecanismo es bastante sucio (aunque funciona), y nos permite adaptar la salida sin complicaciones. El gallery.sh incluirá en su código el fichero .galleryrc de nuestro $HOME, si existe. Esto se hace para redefinir algunos valores por defecto y acceder a funcionalidades extra:

CSS=<dirección a un fichero css>
defecto: nada
ejemplo: CSS="http://www.myweb.com/default.css"

THUMB_WH=<ancho>x<alto>
defecto: 128x128
ejemplo: THUMB_WH="64x64"

HEADER=<código xhtml>
defecto: nada
ejemplo: HEADER="<a href='http://www.myweb.com/gallery/'>Gallery index</a>"

FOOTER=<código xhtml>
defecto: nada
ejemplo: FOOTER="Copyright &copy; 2004 John Foo. All rights reserved."

Si echamos un vistazo a mi $HOME/.galleryrc, podemos encontrar algo así:

CSS="../default.css"
HEADER="<br /><a href='/'>blog</a> : <a href='../'>galleries</a><br />"

Con estas dos opciones indico que el CSS a utilizar se encuentra en el directorio padre a donde estará la galería, y añado una cabecera con un enlace a la bitácora y al índice de galerías.

Conclusiones

Como espero haber sabido transmitir, el funcionamiento y uso del script es muy sencillo. Las páginas generadas son muy ligeras y se pueden colgar en cualquier servidor de páginas web porque no tienen ningún requisito en el servidor (si no usamos el índice general). Pero no todo son ventajas.

El principal inconveniente está claro: son páginas estáticas. No podemos disfrutar de algunas características que otras galerías sí dan, como tener varios tamaños para las fotos, administración web, poder comentar las fotografías, etc; o más importante: añadir, editar y eliminar fotografías de una galería existente.

En mi caso particular los inconvenientes no son importantes, porque no necesito más características y además no suelo editar las galerías, y si he tenido que añadir fotografías me he limitado a volver a generar la galería para posteriormente reemplazar la vieja del servidor (siempre guardo las fotos originales).

La verdad es que programé en script en un ratillo para uso personal, así que no está muy pensado para uso general. Pese a todo, aquí queda esta anotación :).

Anotación por Juan J. Martínez, clasificada en: scripting.

Hay 3 comentarios

Gravatar

Hubo un tiempo que mantuve mis numerosas galerías de fotos con este script (desconozco si con la última versión o no) e iba perfecto además de ser muy sencillo de usar.

Al final la curiosidad acabó llamando a mi puerta para volver a un sistema no_tan_rápido de thumbnails generadas con php y LibGD.

Avalo completa y totalmente gallery.sh.

por r0sk, en 2006-05-08 16:54:21

Gravatar

Ya tengo lo tengo funcionando en mi blog, http://www.jaimesm.com/galeria

por jaimesm, en 2006-05-08 20:14:46

Gravatar

podéis verlo en
http://www.jfirles.com/gallery/

por josefu, en 2006-05-08 22:06:01

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: