The Bitmap Image Type
The
Bitmap command can read XBM data from a file or
directly from data embedded in your Perl/Tk program. Suppose we have
a bitmap of a circle. The following code creates the bitmap image
from the XBM file and gives it a black foreground (the circle) and a
white background. The image is placed inside a Label with a gray
background, and then it’s packed:
my $b = $mw->Bitmap(-file => 'circle.xbm',
-foreground => 'black',
-background => 'white',
);
my $l = $mw->Label(-image => $b, -background => 'gray')->pack;Since the Label shrink-wraps around the image, all we see is the picture shown in Figure 17-5. Notice also that we’ve omitted any mask file.

Figure 17-5. A bitmap of a circle without a mask
Suppose we copy the original bitmap and invert it (that is, toggle
all the bits so ones become zeros and zeros become ones) and save the
result as a mask file. This statement reconfigures the Bitmap image
and adds a -maskfile option, producing a
transparent area where the circle used to be (Figure 17-6), allowing the Label’s gray color to
show through:
$b->configure(-maskfile => 'images/circle.msk');
Notice the bitmap’s background color appears wherever the mask has an on bit and the original source bit is off.

Figure 17-6. Mask that’s an inverted version of bitmap makes ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access