
CHAPTER 13
Drawing and Graphics
Using the Drawing Interface 13-17
Using Bitmaps 13
You can dynamically create and destroy bitmaps, draw into them, and perform
operations on them such as rotating, flipping, and sizing. This flexible treatment of
bitmaps allows you to use them as offscreen buffers and for storage of documents
such as fax pages.
You can create and use bitmap images with the drawing bitmap functions. To create
a bitmap you first allocate a bitmap that will contain the drawing with the
MakeBitmap function. Then create a shape with the MakeShape function.
DrawIntoBitmap takes the drawing and draws it into the bitmap. The final step
is to draw the bitmap on the Newton screen with the
DrawShape function.
The following example shows how to draw a bitmap. It creates a bitmap by drawing
a shape and draws it onto the screen. This example then rotates the shape, scales it,
and redraws it on the Newton:
bitmapWidth := 90;
bitmapHeight := 120;
vfBlack := 5;
// allocate a new bitmap
bitmap := MakeBitmap(bitmapWidth, bitmapHeight, nil);
// make a shape and draw it into the bitmap
shapes := MakeOval(0, 0, 50, 75);
DrawIntoBitmap(shapes, {fillPattern: vfBlack}, bitmap);
// draw the bitmap
GetRoot():DrawShape(bitmap, {transform: [100, 100]});
// Rotation is a destructive operation: it replaces the
// old bitmap with the new rotated bitmap.
MungeBitmap(bitmap, 'rotateRight, nil);
// translate and scale the bitmap
fromRect := SetBounds(0, 0, bitmapWidth, bitmapHeight);
toRight := 100 + floor(bitmapWidth * 1.25);
toBottom := 200 + floor(bitmapHeight * 1.25);
toRight := 100 + bitmapWidth * 5 div 4;
toBottom := 200 + bitmapHeight * 5 div 4;
toRect := SetBounds(100, 200, toRight, toBottom);
// draw the bitmap again
GetRoot():DrawShape(bitmap, {transform: [fromRect,
toRect]});
Commentaires sur ces manuels