#!/usr/bin/perl -w
die
"Usage: $0 font-filename character/Unicode-number [point-size] > foo.pgm\n"
unless
@ARGV
>= 2 &&
@ARGV
<= 3;
my
(
$filename
,
$char
,
$size
) =
@ARGV
;
my
$dpi
= 100;
my
$face
= Font::FreeType->new->face(
$filename
);
if
(
$face
->is_scalable ||
$size
) {
$size
||= 72;
$face
->set_char_size(
$size
,
$size
,
$dpi
,
$dpi
);
}
if
(
$char
=~ /^0x[\dA-F]+$/i) {
$char
=
hex
$char
}
elsif
(
$char
!~ /^\d+$/) {
$char
=
ord
$char
}
my
$glyph
=
$face
->glyph_from_char_code(
$char
);
die
"No glyph for character '$char'.\n"
unless
$glyph
;
my
(
$pgm
,
$left
,
$top
) =
$glyph
->bitmap_pgm;
print
$pgm
;