NAME
Font::PCF
- read an X11 PCF font file
SYNOPSIS
use Font::PCF;
my $font = Font::PCF->open( "/usr/share/fonts/X11/misc/9x15.pcf.gz" );
my $glyph = $font->get_glyph_for_char( "A" );
sub printbits {
my ( $bits ) = @_;
while( $bits ) {
print +( $bits & (1<<31) ) ? '#' : ' ';
$bits <<= 1;
}
print "\n";
}
printbits $_ for $glyph->bitmap->@*;
DESCRIPTION
Instances of this class provide read access to the "PCF" format font files that are typically found as part of an X11 installation.
This module was written just to be sufficient for generating font bitmaps to encode in microcontroller programs for display on OLED panels. It is possibly useful for other use-cases as well, but may required more methods adding.
CONSTRUCTOR
open
$font = Font::PCF->open( $path )
Opens the PCF file from the given path, and returns a new instance containing the data from it. Throws an exception if an error occurs.
METHODS
get_glyph_for_char
$glyph = $font->get_glyph_for_char( $char );
Returns a Glyph struct representing the unicode character; given as a character string.
GLYPH STRUCTURE
Each glyph structure returned by "get_glyph_for_char" has the following methods:
bitmap
@bits = $glyph->bitmap->@*
Returns a reference to the array containing lines of the bitmap for this character. Each line is represented by an integer, where high bits represent set pixels. The MSB is the leftmost pixel of the character.
width
$pixels = $glyph->width
The total number of pixels per line stored in the bitmaps.
left_side_bearing
right_side_bearing
$pixels = $glyph->left_side_bearing
$pixels = $glyph->right_side_bearing
The number of pixels of bearing (that is, blank pixels of space) to either side of the character data.
ascent
descent
$pixels = $glyph->ascent
$pixels = $glyph->descent
The number of pixels above and below the glyph.
name
$str = $glyph->name
The PostScript name for the glyph
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>