Imágenes tipográficas

Títulos gráficos con el tipo de letra de tu elección

[ SPIP 1.9, GD2 y Freetype]

Si GD2 y Freetype están instalados en tu sitio web [1], SPIP puede crear, por sí solo, imágenes a partir de los títulos (o de cualquier elemento de la base de datos) utilizando el tipo de letra que tú elijas.

La función que realiza este efecto es image_typo. La presente página presentará las diferentes variables que se pueden utilizar con esta función.

[(#TITRE|image_typo)]

Si no se le especifica ninguna variable, image_typo utilizará el tipo de letra por defecto proporcionada por SPIP: Dustismo, un tipo de letra GPL de Dustin Norlander. Se encuentra en el subdirectorio polices del directorio dist (en las versiones anteriores de SPIP, estaba en el directorio ecrire).

police

Puedes indicar el nombre de un tipo de letra diferente, siempre que esté instalado en tu servidor.

[(#TITRE|image_typo{police=dustismo_bold.ttf})]

(Dustismo-bold también se proporciona con SPIP).

En teoría, puedes utilizar numerosos formatos de tipo de letra: TrueType, PostScript Type 1, OpenType... Según la configuración de tu servidor, es posible que algunos formatos no sean aceptados.

Los tipos de letra han de estar instalados en un subdirectorio /polices del directorio que contenga tus esqueletos.

Si instalamos, por ejemplo, un archivo TrueType de esta manera:
polices/stencil.ttf
es posible usar este nuevo tipo de letra [2].

[(#TITRE|image_typo{police=stencil.ttf})]

taille

Se puede determinar el tamaño de presentación del tipo de letra. Esto se hace con la variable taille.

[(#TITRE|image_typo{police=stencil.ttf,taille=36})]

Nota: no es necesario escribir «36pt», se indica únicamente «36», sin indicar la unidad.

couleur

Esta variable permite indicar el color. Por omisión, el resultado es negro. La variable consiste en un color RGB (rojo, verde, azul) hexadecimal, siempre con el formato «3399BB». Nota: se omite el «#» que precede habitualmente este tipo de código de color.

[(#TITRE|image_typo{police=stencil.ttf,taille=36,couleur=4433bb})]

largeur

La variable largeur permite fijar el ancho máximo de la imagen. Fíjate bien que este es un valor máximo; la imagen real se «reajusta» de forma automática para adoptar las dimensiones del texto una vez compuesto.

El primero de los bloques de abajo está compuesto con un ancho máximo de 300 píxels, y el segundo con un ancho de 400 píxels.

[(#TITRE|image_typo{police=stencil.ttf,largeur=300})]
[(#TITRE|image_typo{police=stencil.ttf,largeur=400})]

align

La variable align permite forzar la alineación de varias líneas de texto (como en este caso) a la izquierda, a la derecha o al centro. Excepcionalmente, se utiliza aquí una sintaxis en inglés, similar a la que se usa en las hojas de estilo.

[(#TITRE|image_typo{police=stencil.ttf,align=left})]
[(#TITRE|image_typo{police=stencil.ttf,align=center})]
[(#TITRE|image_typo{police=stencil.ttf,align=right})]

hauteur_ligne

hauteur_ligne permite fijar la altura entre cada una de las líneas del texto (en caso que la imagen tenga varias líneas).

[(#TITRE|image_typo{police=stencil.ttf,taille=36,hauteur_ligne=80})]

padding

Algunos tipos de letra «sobrepasan» el espacio que tienen asignado, con lo que se obtiene un efecto desastroso (tipos de letra «cortados»). La variable padding permite, excepcionalmente, forzar un espacio suplementario alrededor del resultado tipográfico.

[(#TITRE|image_typo{police=stencil.ttf,padding=5})]

Filtrar la imagen

Como el resultado de image_typo es una imagen, es posible aplicarle filtros de imágenes. Por ejemplo, a continuación se ve cómo se hace semitransparente la imagen, o se le aplica una textura.

[(#TITRE|image_typo{police=stencil.ttf,couleur=aa2244}|image_alpha{60})]
[(#TITRE|image_typo{police=stencil.ttf,couleur=aa2244}|image_masque{carre-mur.png})]

Notas

[1GD2 es una extensión gráfica de PHP, que permite numerosas manipulaciones de imágenes. Freetype, instalado habitualmente con GD2, es la extensión que inserta texto en una imagen a partir de un archivo de tipo de letra, Truetype o Postscript. En caso de duda, pregunta a tu alojador si GD2 está instalado.

[2Atención: si no proteges el directorio (con un htaccess por ejemplo), tu archivo de tipo de letra será accesible a través de la Web. Si utilizas tipos de letra comerciales, ten esto en cuenta, para evitar la difusión de tipos de letra sin autorización.

N.B.1. La imagen creada por image_typo tiene el formato PNG 24 con una capa alfa para realizar la transparencia. Para forzar que Microsoft Internet Explorer muestre correctamente esta transparencia, SPIP utiliza un tipo de hoja de estilo específico, format_png, definido en spip_style.css; éste llama a un «comportamiento» (behaviour), que hace que la visualización bajo MSIE sea posible. Por tanto, una vez más, es interesante integrar el spip_style.css estándar en los esqueletos propios, con la libertad de añadirle los estilos propios que quieras.

N.B.2. La visualización de ciertos tipos de letra (en particular los ingleses y ciertas cursivas) es problemática. Las técnicas de renderizado tipográfico en GD2 están, evidentemente, todavía en desarrollo (en este aspecto nos encontramos con error tras error). Esperamos que las funciones GD2 progresarán rápidamente.

N.B.3. ¿Árabe, farsi, hebreo? Desgraciadamente: ¡no! Nos encontramos de momento con dos dificultades que no permiten proponer una solución «adecuada» para la visualización del hebreo y del árabe.
— En primer lugar, la gestión de la visualización bidireccional no está asegurada por GD2; por tanto, no es posible por el momento crear imágenes tipográficas para cadenas que se escriben de derecha a izquierda.
— Para el árabe (y el farsi) no se gestionan las ligaduras de letras. En particular, las ligaduras de OpenType son simple y llanamente ignorados.

Autor o autora David Sánchez Crespillo Publicado el: Actualizado: 21/03/23

Traducciones: català, English, Español, français, italiano, Nederlands