Important: The information in this document is obsolete and should not be used for new development.
CopyDeepMaskTo use a mask when copying bitmaps or pixel maps between graphics ports (or from an offscreen graphics world into a graphics port), you can use the
CopyDeepMaskprocedure, which combines the effects of the
PROCEDURE CopyDeepMask (srcBits: BitMap; maskBits: BitMap; dstBits: BitMap; srcRect: Rect; maskRect: Rect; dstRect: Rect; mode: Integer; maskRgn: RgnHandle);
- The source
- The masking
- The destination
- The source rectangle.
- The mask rectangle. This must be the same size as the rectangle passed in the
- The destination rectangle.
- The source mode.
- The mask clipping region.
CopyDeepMaskprocedure transfers a bitmap between two basic graphics ports or a pixel map between two color graphics ports. You specify a mask to
CopyDeepMaskso that it transfers the source image to the destination image only where the bits of the mask are set to 1. You can use
CopyDeepMaskto move offscreen graphic images into an onscreen window, to blend colors for the image in a pixel map, and to shrink and expand images.
Specify a source bitmap in the
srcBitsparameter and a destination bitmap in the
dstBitsparameter. Specify a mask in the
maskBitsparameter. When copying images between color graphics ports, you must coerce each port's
CGrafPortrecord to a
GrafPortrecord, dereference the
portBitsfields of each, and then pass these "bitmaps" in the
dstBitsparameters. If your application copies a pixel image from a color graphics port called
MyColorPort, for example, you could specify
srcBitsparameter. The transfer can be performed in any of the transfer modes--with or without adding the
ditherCopyconstant--that are available to the
CopyBitsprocedure, described beginning on page 3-108.
dstRectparameters, you can specify identically or differently sized source and destination rectangles; for differently sized rectangles,
CopyDeepMaskscales the source image to fit the destination. When you specify rectangles in the
dstRectparameters, use the local coordinate systems of, respectively, the source and destination graphics ports.
The result (in the parameter
dstBits) is clipped to the mask region that you specify in the
maskRgnparameter, and to the boundary rectangle that you specify in the
dstRectparameter. The rectangle you pass in the
maskRectparameter selects the portion of the bitmap or pixel map that you specify in the
maskBitsparameter to use as the mask. If you don't want to clip to the mask region, specify
If you specify pixel maps to
CopyDeepMask, they may range from 1 to 32 pixels in depth. The pixel depth of the mask that you specify in the
maskBitsparameter is applied as a filter between the source and destination pixel maps that you specify in the
dstBitsparameters. A black mask pixel value means that the copy operation is to take the source pixel; a white value means that the copy operation is to take the destination pixel. Intermediate values specify a weighted average, which
is calculated on a color component basis. For each pixel's color component value, the calculation is
(1 - mask) source + (mask) destination
Thus high mask values for a pixel's color component reduce that component's contribution from the source
SPECIAL CONSIDERATIONSThis procedure is available to basic QuickDraw only in System 7.
As with the
CopyMaskprocedure, calls to
CopyDeepMaskare not recorded in pictures and do not print.
See the list of special considerations for the
CopyBitsprocedure beginning on page 3-113; these considerations also apply to
CopyDeepMaskprocedure may move or purge memory blocks in the application heap. Your application should not call this procedure at interrupt time.
SEE ALSOThe chapter "Color QuickDraw" describes in more detail how to use
CopyDeepMaskin a Color QuickDraw environment.