PC Screen Font ( PSF ) es un formato de fuente de mapa de bits que actualmente utiliza el kernel de Linux para las fuentes de consola . La documentación del formato de archivo PSF se encuentra en el código fuente de las utilidades kbd de Linux. [ 1 ] El formato está descrito por la Universidad de Eindhoven. [ 2 ]
Formato de archivo
Encabezado del archivo
Cada archivo PSF comienza con una cabecera. Existen dos tipos de cabecera: PSF1 y PSF2. Todos los enteros multibyte están en orden de bytes menos significativo (little endian).
Todos los glifos psf1 tienen 8 píxeles de ancho.
Modos de fuente
El modo de fuente en un encabezado psf1 es un entero sin signo de 8 bits que contiene varias banderas sobre la fuente.
Banderas de fuente
El campo de indicadores de fuente en un encabezado PSF2 es un entero sin signo de 32 bits que contiene varios indicadores sobre la fuente. Actualmente solo hay un indicador.
Mapas de bits de archivos
Los datos del glifo propiamente dicho aparecen inmediatamente después del encabezado. Cada bit de cada glifo representa un píxel de la fuente: 0 para no dibujado, 1 para dibujado. Cada fila de cada glifo se rellena hasta alcanzar un número entero de bytes. Por ejemplo, una fuente de 12x12 tendría 2 bytes por fila. La letra 'A' en un mapa de bits PSF de 12x12 podría tener este aspecto:
relleno Datos de la fuente | +----------+ +--+ 000001100000 0000 000011110000 0000 000110011000 0000 001100001100 0000 011000000110 0000 110000000011 0000 111111111111 0000 111111111111 0000 110000000011 0000 110000000011 0000 110000000011 0000 110000000011 0000
con doce bits de datos reales y relleno para completar cada fila al byte más cercano. Las filas se almacenan con la columna más a la izquierda primero.
La tabla Unicode
Si un archivo PSF contiene una tabla Unicode, cada glifo tiene una entrada en dicha tabla. El primer glifo corresponde a la primera entrada, el segundo a la segunda, y así sucesivamente. El formato de una entrada en la tabla Unicode depende del tipo de encabezado del archivo PSF.
La tabla Unicode PSF1
Las entradas en la tabla Unicode de un archivo PSF1 se representan como una serie de enteros sin signo de 16 bits little-endian que terminan en 0xffff. Los primeros enteros de la entrada contienen un carácter Unicode representado por el glifo correspondiente. Estos caracteres Unicode continúan hasta que 0xfffese encuentra el entero. Luego, a partir del 0xfffevalor , en lugar de representar caracteres Unicode individuales, los números representan series de caracteres Unicode que corresponden al glifo, comenzando una nueva serie con cada 0xfffeencontrado y deteniéndose una vez 0xffffque se encuentra . Por ejemplo, la siguiente serie de enteros sin signo de 16 bits little-endian se interpretaría de la siguiente manera:
0xmuerto 0xcarne 0xfffe 0x3141 0x5926 0xfffe 0x1234 0x5678 0xffff
Siempre que se vea la secuencia , U+dead, o la secuencia , muestre el glifo correspondiente a esta entrada de la tabla Unicode.U+beefU+3141 U+5926U+1234 U+5678
La tabla Unicode PSF2
Las entradas en la tabla Unicode de un archivo PSF2 son idénticas a las de un archivo PSF1, con la excepción de que los caracteres Unicode se representan en UTF-8 , las secuencias Unicode comienzan con el valor de un byte 0xfe(en lugar del de dos bytes 0xfffe) y las entradas Unicode terminan con el valor de un byte 0xff(en lugar del de dos bytes 0xffff). Ninguno de estos valores 0xfepuede aparecer en secuencias UTF-8 válidas.
Referencias
- Formatos de fuente
- Tipografías rasterizadas