NAME
pbmtext - render text into a bitmap
SYNOPSIS
pbmtext [-font fontfile] [-builtin fontname] [-space pixels] [-lspace
pixels] [text]
DESCRIPTION
Takes the specified text, either a single line from the command line or
multiple lines from standard input, and renders it into a bitmap.
In the bitmap, each line of input is a line of output. Formatting
characters such as newline have no effect on the formatting; like any
unprintable character, they turn into spaces.
The bitmap is just wide enough for the longest line of text, plus
margins, and just high enough to contain the lines of text, plus
margins. The left and right margins are twice the width of the widest
character in the font; the top and bottom margins are the height of the
tallest character in the font. But if the text is only one line, all
the margins are half of this.
OPTIONS
-font,-builtin
By default, pbmtext uses a built-in font called bdf (about a 10
point Times-Roman font). You can use a fixed width font by
specifying -builtin fixed.
You can also specify your own font with the -font flag. The
fontfile is either a BDF file from the X window system or a PBM
file.
If the fontfile is a PBM file, it is created in a very specific
way. In your window system of choice, display the following
text in the desired (fixed-width) font:
M ",/^_[‘jpqy| M
/ !"#$%&’()*+ /
< ,-./01234567 <
> 89:;<=>?@ABC >
@ DEFGHIJKLMNO @
_ PQRSTUVWXYZ[ _
{ \]^_‘abcdefg {
} hijklmnopqrs }
~ tuvwxyz{|}~ ~
M ",/^_[‘jpqy| M
Do a screen grab or window dump of that text, using for instance
xwd, xgrabsc, or screendump. Convert the result into a pbm
file. If necessary, use pnmcut to remove everything except the
text. Finally, run it through pnmcrop to make sure the edges
are right up against the text. pbmtext can figure out the sizes
and spacings from that.
-space pixels
Add pixels pixels of space between characters. This is in
addition to whatever space surrounding characters is built into
the font, which is usually enough to produce a reasonable string
of text.
pixels may be negative to crowd text together, but the author
has not put much thought or testing into how this works in every
possible case, so it might cause disastrous results.
-B -lspace pixels
Add pixels pixels of space between lines. This is in addition to
whatever space above and below characters is built into the
font, which is usually enough to produce a reasonable line
spacing.
pixels must be a whole number.
pixels may be negative to crowd lines together, but the author
has not put much thought or testing into how this works in every
possible case, so it might cause disastrous results.
USAGE
Often, you want to place text over another image. One way to do this
is with ppmlabel. ppmlabel does not give you the font options that
pbmtext does, though.
Another way is to use pbmtext to create an image containing the text,
then use pnmcomp to overlay the text image onto your base image. To
make only the text (and not the entire rectangle containing it) cover
the base image, you will need to give pnmcomp a mask, via its -alpha
option. You can just use the text image itself as the mask, as long as
you also specify the -invert option to pnmcomp.
If you want to overlay colored text instead of black, just use
ppmchange to change all black pixels to the color of your choice before
overlaying the text image. But still use the original black and white
image for the alpha mask.
If you want the text at an angle, use pnmrotate on the text image (and
alpha mask) before overlaying.
SEE ALSO
pnmcut(1), pnmcrop(1), pnmcomp(1), ppmchange(1), pnmrotate(1),
pbmtextps(1), ppmlabel(1), pbm(5)
AUTHOR
Copyright (C) 1993 by Jef Poskanzer and George Phillips
28 January 2001 pbmtext(1)