Texto

 

 

Tipografía
El uso de texto con tipografías especiales planteaba el problema de la distribución de fuentes con copyright. Para evitar este problema, Processing inventó un ingenioso sitema de uso de texto: en vez de descargar el archivo de tipografía original (una fuente Truetype, por ejemplo), el sketch utiliza una versión "planchada" de esa tipografía, una imagen bitmap de los caracteres a un tamaño determinado. Con este método no tenemos toda la libertad de un sistema vectorial, ya que escalar o rotar esta tipografía generará problemas de calidad, pero nos permite utilizar cualquier tipografía sin ningún conflicto de distribución y copyright.

 

 

Para poder utilizar tipogafía con consistencia entre distintos sistemas, evitando problemas de copyright, Processing crea una especie de instantánea de la tipografía que queremos utilizar, convirtiéndola en una imagen bitmap que se almacena en un formato especial dentro de la carpeta "data" del sketch. De este modo podemos distribuir el sketch con el tipo de fuente que queremos utilizar sin problema entre sistemas.
Creamos la fuente en el menú: Tools/Create Font. Escogemos la fuente, previsualizando sus aspecto, y elgimos también el tamaño principal en el que queremos utilizarla. Al crear una copia bitmap de nuestra fuente vectorial, las letras sólo quedarán bien en ese tamaño seleccionado. Tamaños mayores o menores sufrirán del escalado, generando suavizados de anti-aliasing, del mismo modo que cualquier imagne bitmap. Cuando necesitemos una misma fuente en varios tamaños muy dispares, será mejor generar fuentes en varios de esos tamaños.

size(400,300);
PFont font1;
font1 = loadFont("LevenimMT-Bold-48.vlw");
textFont(font1, 48);
text("Word", 40, 150);

 

text00


Podemos generar diversas fuentes y emplearlas en el mismo sketch, cambiando la fuente activa en cualquier momento.

size(400,300);
PFont font1;
PFont font2;
font1 = loadFont("LevenimMT-Bold-48.vlw");
font2 = loadFont("LithosPro-Black-48.vlw");
textFont(font1, 48);
text("Word", 40, 150);
textFont(font2, 48);
text("Word", 200, 150);

 

text01

 


Podemos forzar cambios de tamaño, aunque la imagen quede menos nítida:

size(200,200);
PFont font1;
font1 = loadFont("LevenimMT-Bold-48.vlw");
textFont(font1, 48);
text("Word", 10, 50);
textFont(font1, 96);
text("Word", 10, 100);
textFont(font1, 192);
text("Word", 10, 250);

 

text02



Existe otro modo de generar la fuente que queremos utilizar: si sabemos que esa tipografía está instalada en nuestro sistema, podemos generar al vuelo el archivo que necesitamos:

f = createFont("Georgia", 24);
textFont(f);


Podemos ver todas las fuentes instaladas con:

printArray(PFont.list());

 

textlist

Control del texto

Podemos cambiar el tamaño de la fuente simplemente con:

textSize(12);


El texto se dibuja en pantalla de un modo similar a las imágenes, empleando la orden "text", con el texto y las coordenadas de dibujo.
Para controlar la alineación del texto podemos utilizar:

textAlign(RIGHT); // o bien CENTER, o LEFT


El interlineado se puede ajustar con:

textLeading(10); // (en píxeles)



El tamaño de la caja de texto

A veces resulta útil averiguar el tamaño del texto que estamos utilizando, para trazar otras formas alrededor. Para ello utilizamos textWidth(), que devuelve el tamaño de la caja en píxeles.

String s = "Width";
float sw = textWidth(s);
text(s, 0, 85);
line(sw, 50, sw, 100);

 

textwidth


textAscent() y textDescent() nos devuelven la altura de la ascendente y descendente. La suma nos da el total de la caja.



Texto vectorial en PDF

Existe un modo vectorial cuando queremos generar un PDF desde el sketch de Processing. Utilizamos:


textMode(SHAPE);

De este modo el texto se traza a la máxima calidad y puede ampliarse todo lo que sea necesario, al tratarse de datos vectoriales.


La generación de PDF se explica aquí:

https://processing.org/reference/libraries/pdf/

 

pdfexport

 

 

 

[ GO TO : NEXT PAGE -> ... soon ...