1 Medley for the Novice, Release 2.0 1 Medley for the Novice, Release 2.0 14. BITMAPS 1 14. BITMAPS 1 "14"14. BITMAPS 6 A bitmap(BITMAP NIL Bitmap NIL ("14") 1) is a rectangular array of dots. The dots are called "pixels" (for picture elements). Each dot, or pixel, is represented by a single bit. When a pixel or bit is turned on (i.e. that bit set to 1), a black dot is inserted into a bitmap. If you have a bitmap of a floppy on your screen (Figure 14-1), then all of the bits in the area that make up the floppy are turned on, and the surrounding bits are turned off. UUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP0UUUU5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU5UUP0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP-p`0UUUU`5UUP`0UUUU`5UUP?`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU`5UUP?`0UUUU`5UUP`0UUUU0`5UUP{``0UUUUP`5UUP0`0UUUU``5UUP`0UUUU`5UUP`0UUUU `5UUP`0UUUU `5UUP@`0UUUU`5UUP`0UUUU`5UUP@`0UUUU@`5UUP@`0UUUU@`5UUP `0UUUU `5UUP `0UUUU `5UUP `0UUUU `5UUP`0UUUU`5UUP`0UUUU`5UUP`0UUUU `5UUP `0UUUU`5UUP`0UUUU`5UUP`0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUU5UUP0UUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUP Figure 14-1. Bitmap of a Floppy BITMAPCREATE(BITMAPCREATE (Function) NIL NIL ("14") 1) creates a bitmap, even though it can't be seen. (BITMAPCREATE width height) If the width and height are not supplied, the system will prompt you for them. (EDITBM (Function) NIL NIL ("14") 1)EDITBM edits the bitmap. The syntax of the function is: (EDITBM bitmapname) Try the following to produce the results in Figure 14-4: (SETQ MY.BITMAP (BITMAPCREATE 60 40)) EDITBM MY.BITMAP) To draw In the bitmap(BITMAP NIL Bitmap NIL NIL NIL SUBNAME DRAWING SUBTEXT drawing), move the mouse into the gridded section of the bitmap editor, and press and hold the leff mouse button. Move the mouse around to turn on the bits represented by the spaces in the grid. Notice that each space in the grid represents one pixel on the bitmap To erase(BITMAP NIL Bitmap NIL NIL NIL SUBNAME ERASING SUBTEXT erasing) Move the mouse into the gridded section of the bitmap editor, and press and hold the center mouse button. Move the mouse around to turn off the bits represented by the spaces in the gridded section of the bitmap editor. To work on a different section(BITMAP NIL Bitmap NIL NIL NIL SUBNAME WORKING% IN% DIFFERENT% SECTION SUBTEXT working% in% different% section) Point with the mouse cursor to the picture of the actual bitmap (the upper left corner of the bitmap editor). Press and hold the left mouse button. A menu with the single item, Move will appear. (See Figure 14-2.) Choose this item. `o}}L- :3nͻ}wx}wf}wnͻwqQ-;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUꪪ`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUjZ`UUUUUUUUUUUUUUUUUUUUUUUUUUUj `UUUUUUUUUUUUUUUUUUUUUUUUUUU?j`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj `UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUU? 8UUUUUUUUUUUUUUUUUUUUUUUUUUU` 0`UUUUUUUUUUUUUUUUUUUUUUUUUUU0` `(GUUUUUUUUUUUUUUUUUUUUUUUUUUU($H/`%$"UUUUUUUUUUUUUUUUUUUUUUUUUUU 0%$"  "$!UUUUUUUUUUUUUUUUUUUUUUUUUUU@"# UUUUUUUUUUUUUUUUUUUUUUUUUUU@ UUUUUUUUUUUUUUUUUUUUUUUUUUUj `UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj@`UUUUUUUUUUUUUUUUUUUUUUUUUUU@j@`UUUUUUUUUUUUUUUUUUUUUUUUUUU@j@`UUUUUUUUUUUUUUUUUUUUUUUUUUU@j `UUUUUUUUUUUUUUUUUUUUUUUUUUU j `UUUUUUUUUUUUUUUUUUUUUUUUUUU j`UUUUUUUUUUUUUUUUUUUUUUUUUUUj `UUUUUUUUUUUUUUUUUUUUUUUUUUU j`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUj`UUUUUUUUUUUUUUUUUUUUUUUUUUUꪪUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTUUTUUTUUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUUTUUTUUTUUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUUTUUTUUTUUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUUTUUTUUTUUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUTTTTTTTTTTTTTTTUTUUTUUTUUTUUTUTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTUTUTUTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTUTUTUTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTUTUTUTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTUTUT Figure 14-2. Menu with Single Item (Move) You will be asked to position a ghost window over the bitmap. This ghost window represents the portion of the bitmap that you are currently editing. Place it over the section of the bitmap that you wish to edit and click the left mouse button (see Figure 14-3). `Цx?ۙg|ۻo}ۻo}ۻg}ܻ  UUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT 0 UUUU5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU5UUQUUT 0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT UUUUUUUUU5UP0 UUUUʪ5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT -p`0 UUUU`5UUQUUT `0 UUUU`5UUQUUT ?`0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT ?`0 UUUU`5UUQUUT `0 UUUU0`5UUQUUT {``0 UUUUP`5UUQUUT 0`0 UUUU``5UUQUUT `0 UUUU`5UUQUUT `0 UUUU `5UUQUUT `0 UUUU `5UUQUUT @`0 UUUU`5UUQUUT `0 UUUU`5UUQUUT @`0 UUUU@`5UUQUUT @`0 UUUU@`5UUQUUT  `0 UUUU `5UUQUUT  `0 UUUU `5UUQUUT  `0 UUUU `5UUQUUT `0 UUUU`5UUQUUT UUEWUUUUU5UT0 UUUUʪ5UUQUUT `0 UUUU `5UUQUUT  `0 UUUU`5UUQUUT `0 UUUU`5UUQUUT `0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUU5UUQUUT 0 UUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT  UUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUT T T T UUUUUUUUUUUUUUUT UUUUUUUUUUUUUUUT UUUUUUUUUUUUUUUT ՀՀՀՀՀՀՀՀՀՀՀՀՀՀՀ T T T UUUUUUUUUUUUUUUT UUUUUUUUUUUUUUUT UUUUUUUUUUUUUUUT ՀՀՀՀՀՀՀՀՀՀՀՀՀՀՀ T T T Figure 14-3. Ghost Window Awaiting Positioning To end the session(BITMAP NIL Bitmap NIL NIL NIL SUBNAME ENDING% A% SESSION SUBTEXT ending% a% session), bring the mouse cursor into the upper-right portion of the window (the grey area) and press the center button. Select OK from the menu to save your artwork. @UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUXUUUU|` 0;UU}}}<}UU|]ۿ}w}};UU}}}]ۿ}UU|<}7UUUU``UU``UU``UU``UU``UU``UU``UU``UU``<v>op ~>>|!8xUU`fcv3cq`3cfpcxa` pc03c`3cfpcXaUUc8@ cf`13`fc0` c3cg1ݛ>`|c0UU`@ c3c1ݟ0cfc0` fcXc61ݱcfc0UU` |a0c661ɱ>fcx0`0aUU`a` UU```UU`"@1`6(@@0QHUU`6(CAPQ`*(ACUUcB*D1@BB`B*|GBDUU`B*DBDH`"DB|㏀UU`@``UU``UU``~߾q~>0UU``3q3` `3{3UUc @ |>{3 `< `3n݆ݛ> UU`@ `3n݆ݟ0 `" `3n݆ ݱ UU` ~>dɆ ɱ `UU``0UU``UU``UU``UU``UU``UU``UU``UU``UU``UU``UU``UU``UU``UU``;UU``çUU`;s6۽`ww۽UU`wvm۽`wv۽UU`;wÿ`UU``UU``UU`*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU` *`_UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`0*` UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU` p*` UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`@*`@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`@y*`@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`@@*`@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`@@*`@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`@ *`@ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU` *`@ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`@ *``@0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU` 8@*`0g0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`` *``|`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU` ?@*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`78*` UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`*`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`*`UU``UU``UU``UU``UU``UU``UU`UPUUUUUUU` UU`UPUUUUUUU` UU`UPUUUUUUU` UU`UPUUUUUUU` UU`UPUUUUUUU` UU`UPUUUUUUU` UU`UPUUUUUU` UU`UPUUUUUU` UU`UPUUUUUU` UU`UPUUUUUU` UU`UPUUUUUU` UU`UPUUUUUU` UU`UUU`UU`UUU`UU`UUU`UU`UUU`UU`UUU`UU`UUU`UU`U` UU`U` UU`U` UU`U` UU`U` UU`U` UU`UP`UU`UP`UU`UP`UU`UP`UU`UP`UU`UP`UU`U` UU`U` UU`U` UU`U` UU`U` UU`U` UU`UPUUUU` UU`UPUUUU` UU`UPUUUU` UU`UPUUUU` UU`UPUUUU` UU`UPUUUU` UU`UPUUUUUUUP`UU`UPUUUUUUUP`UU`UPUUUUUUUP`UU`UPUUUUUUUP`UU`UPUUUUUUUP`UU`UPUUUUUUUP`UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUUUPUP` UU`UUUUUUPUU` UU`UUUUUUPUU` UU`UUUUUUPUU` UU`UUUUUUPUU` UU`UUUUUUPUU` UU`UUUUUUPUU`   UU`UUU` UU`UUU` UU`UUU` UU`UUU` UU`UUU` UU`UUU`   UU`UUU` UU`UUU` UU`UUU` UU`UUU` UU`UUU` UU`UUU`   UU`UUUUUU` UU`UUUUUU` UU`UUUUUU` UU`UUUUUU` UU`UUUUUU` UU`UUUUUU`  UU`UUPU` UU`UUPU` UU`UUPU` UU`UUPU` UU`UUPU` UU`UUPU` UU`UUPUU` UU`UUPUU` UU`UUPUU` UU`UUPUU` UU`UUPUU` UU`UUPUU`  UU`UUPU` UU`UUPU` UU`UUPU` UU`UUPU` UU`UUPU` UU`UUPU`  UU`UUPUU` UU`UUPUU` UU`UUPUU` UU`UUPUU` UU`UUPUU` UU`UUPUU`  UU`UUUUUPU` UU`UUUUUPU` UU`UUUUUPU` UU`UUUUUPU` UU`UUUUUPU` UU`UUUUUPU` UU`UU` Figure 14-4. Editing a Bitmap BITBLT(BITBLT (Function) NIL NIL ("14") 3) is the primitive function for moving bits (or pixels) from one bitmap to another. It extracts bits from the source bitmap, and combines them in appropriate ways with those of the destination bitmap. The syntax of the function is: (BITBLT sourcebitmap sourcelefl sourcebottom destinationbitmap destinationleft destinationbottom width height sourcetype operation texture clippIngregion) Here's how it's done %using MY.BITMAP as the sourcebitmap and MY.WlNDOW as the destinationbitmap. (BITBLT MY.BITMAP NIL NIL MY.WINDOW NIL NIL NIL NIL `INPUT `REPLACE) Note that the destination bitmap can be, and usually is, a window. Actually, it is the bitmap of a window, but the system handles that detail for you. Because of the NILs (meaning "use the default"), MY.BITMAP will be BITBLT'd into the lower right corner of MY.WlNDOW (see Figure 14-5). `@`wݞ}xݮx7w{} xݾo;:0:0:0:0:0:0:0:0:y80b6~>b0|CFa0 ̀080b6ccb0 ̀ F0:8@ 0=`7fcc7` ̀00Dy0=7fcc7``:9=07a5fcc5``0D 07acć`:D@̀ư7acc̓`082a~>|`: ` 00 0 0:a0:0"xqG :2DH"a0 2DP2 : *DP!P0 *DPb!PJ:&D!L0&D"0!H:"xp0: 0:0:|v>opv1q1 0 ͌f`v3cq`3v1y:8@ ͌f`03c`30y0D|`>cf`3m:M͌f`3cg3m04͌f`3c3g:D@͌f`c63g08|`0c660Cc@: 0 : 0:0G:B0B:B0B:0:G0:0:0:0:8@0D:E0D:D@08:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:```````````````````````````````````````````````````````````````````````,```p@>x@`> x@> `D D `D```0` `  ````@p` ````` Figure 14-5. BITBLTing a Bitmap onto a Window Here is what each of the BITBLT arguments to the function mean: sourcebitmap The bitmap to be moved into the destinationbitmap sourceleft A number, starting at 0 for the left edge of the sourcebitmap, that tells BITBLT where to start moving pixels from the sourcebitmap. For example, if the leftmost 10 pixels of sourcebitmap were not to be moved, sourceleft should be 10. The default value is 0. sourcebottom A number, starting at 0 for the bottom edge of the sourcebitmap, that tells BITBLT where to start moving pixels from the sourcebitmap. For example, if the bottom 10 rows of pixels of sourcebitmap were not to be moved, sourcebottom should be 10 The default value is 0. destinationbitmap The bitmap that will receive the sourcebitmap. This is often a window (actually the bitmap of a window, but Interlisp-D takes care of that for you). destinationleft A number, starting at 0 for the left edge of the destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the sourcebitmap 10 pixels in from the left, destinationleft should be 10. The default value is 0. destinationbottom A number, starting at 0 for the bottom edge of the destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the sourcebitmap 10 pixels up from the bottom, destinationbottom should be 10. The default value is 0. width How many pixels in each row of sourcebitmap should be moved. The samc amount of space is used in destinationbitmap to receive the sourcebitmap. If this argument is NIL, it defaults to the number of pixels from sourceleft to the end of the row of sourcebitmap. height How many rows of pixels of sourcebitmap should be moved. The same amount of space is used in destinationbitmap to receive the sourcebitmap. If this argument is NIL, it defaults to the number of rows from sourcebottom to the top of the sourcebitmap. sourcetype Refers to one of three ways to convert the sourcebitmap for writing. For now, just use 'INPUT. operation Refers to how the sourtebitmap gets BITBLT'd on to the destinationbitmap. 'REPLACE will BLT the exact sourcebitmap. Other operations allow you to AND, OR or XOR the bits from the sourcebitmap onto the bits on the destinationbitmap. texture Just use NIL for now. clippingregion Just use NIL for now. For more information on these operations, see Chapter 27 in the IRM. (LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "14-" "") STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "14-" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (TEXT NIL NIL (54 54 504 690) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "14-" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "14-" "")) (54 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "14-" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "14-" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE RECTOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL)))))3HT,HHE PAGEHEADINGFOOTINGV,ll,ll,ll2ll2HH2H,HH,HH,HH,25F PAGEHEADING VERSOHEADF PAGEHEADING RECTOHEADE PAGEHEADINGFOOTINGVE PAGEHEADINGFOOTINGR, CLASSIC TITAN CLASSIC MODERN HELVETICACLASSIC  HELVETICA MODERN  TIMESROMAN  HRULE.GETFNMODERN " HRULE.GETFNCLASSIC #  HRULE.GETFNCLASSIC   HRULE.GETFNCLASSIC  IM.CHAP.GETFN HELVETICA  HRULE.GETFNMODERN     IM.INDEX.GETFN  BMOBJ.GETFN3CLASSIC    *IM.INDEX.GETFN1   O $IM.INDEX.GETFNTITAN 2  9&   ?IM.INDEX.GETFN ?IM.INDEX.GETFNCLASSIC  oIM.INDEX.GETFNCLASSIC  S2 BMOBJ.GETFN3CLASSIC  *   %< BMOBJ.GETFN3 TIMESROMAN   1 UIM.INDEX.GETFNCLASSIC  [ BMOBJ.GETFN3CLASSIC   $IM.INDEX.GETFNCLASSIC     3   " Y BMOBJ.GETFN3CLASSIC   ! 5 L M  QS ] V Y & 7H      @]z