dev.Monsterzen.com

Utilizando Pyglyph

21 June 2011

Pyglyph es un generador de texturas de fuentes desarrollado en Python. El objetivo que tenía en mente era facilitar el renderizado de fuentes en proyectos relacionados con aplicaciones y videojuegos utilizando OpenGL ES bajo dispositivos iOS.

Pyglyph es capaz de generar dos archivos, un primer archivo png con todos los caracteres requeridos con un tamaño y color dados, y un segundo archivo con metadatos sobre cada uno de los caracteres presentes en el archivo gráfico. El archivo de metadatos generado es un XML de tipo plist, facilitando su uso en proyectos para dispositivos iOS, aunque utiliza un sistema de plantillas para poder configurar el formato de salida de los metadatos.

Pyglyph está inspirado en un ejercicio desarrollado en el libro iPhone 3D Programming con el mismo propósito, libro que recomiendo encarecidamente si deseas introducirte en el mundo del desarrollo con OpenGL ES sobre iPhone.

La siguiente imagen es un ejemplo del tipo de texturas que es posible generar con Pyglyph: Ejemplo Pyglyph

Este es un pequeño tutorial de como instalar y utilizar Pyglyph para generar las texturas que necesitas para tus proyectos. Pyglyph puede ser descargado desde su repositorio en GitHub.

Instalación

Pyglyph tiene tres dependencias que es necesario tener instaladas para poder utilizarlo:

Instalando PyCairo

PyCairo es un módulo para permitir el uso de la librería Cairo desde Python. Es el módulo que utiliza Pyglyph para el renderizado de las fuentes. Para instalarlo podemos utilizar la herramienta easy_install del siguiente modo:

$ sudo easy_install pycairo

Para comprobar que la instalación de PyCairo podemos ejecutar el siguiente comando, que deberá no mostrar ningún error en pantalla en caso de que la instalación haya finalizado correctamente:

$ python -c "import cairo"

Instalando Mako

Mako es una estupenda librería para la creación de plantillas en Python, es la que utiliza Pyglyph para la generación de los archivos de metadatos y poder hacer configurable la generación de estos. Para instalar Mako utilizamos el siguiente comando:

$ sudo easy_install mako

Para comprobar su correcta instalación ejecutamos el siguiente comando, que no debería mostrar ningún mensaje de error:

$ python -c "import mako"

Con la instalación de Mako ya tenemos todo lo que necesitamos para poder generar texturas con Pyglyph.

Jugando con Pyglyph

A continuación vamos a definir una serie de ejemplos de uso de Pyglyph.

Imaginemos que deseamos obtener una textura con los siguientes parámetros:

Ejecutaremos el siguiente comando:

$ ./pyglyph.py --fontsize=40 --texturesize=512x256 --font="Cooper Std" --output=cooper

Destacar que el color de la fuente por defecto es el negro y que Pyglyph siempre renderiza la fuente sobre fondo transparente.

Si todo ha funcionado correctamente deberías obtener dos archivos uno llamado cooper.png debería tener el aspecto del ejemplo presentado al principio de este post, el otro archivo de metadatos (cooper.plist) contendrá los metadatos sobre la posición de los caracteres dentro de la textura e información adicional que puede servir para poder renderizar de manera correcta texto en aplicaciones.

Un segundo ejemplo:

Utilizaremos el siguiente comando:

$ ./pyglyph.py --fontsize=60 --texturesize=256x128 --font="Casual" --characters="0123456789" --color=256,0,0 --output=casual

Obtendremos la siguiente textura: Ejemplo Pyglyph

Metadatos

Artículo en construcción.