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
$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 ...