2.3.1.8 EMR_TRANSPARENTBLT Record
The EMR_TRANSPARENTBLT record specifies a block transfer of pixels from a source bitmap to a destination rectangle, treating a specified color as transparent, stretching or compressing the output to fit the dimensions of the destination, if necessary.<58>
Fields not specified in this section are specified in section 2.3.1.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Type |
|||||||||||||||||||||||||||||||
Size |
|||||||||||||||||||||||||||||||
Bounds |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
xDest |
|||||||||||||||||||||||||||||||
yDest |
|||||||||||||||||||||||||||||||
cxDest |
|||||||||||||||||||||||||||||||
cyDest |
|||||||||||||||||||||||||||||||
TransparentColor |
|||||||||||||||||||||||||||||||
xSrc |
|||||||||||||||||||||||||||||||
ySrc |
|||||||||||||||||||||||||||||||
XformSrc (24 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
BkColorSrc |
|||||||||||||||||||||||||||||||
UsageSrc |
|||||||||||||||||||||||||||||||
offBmiSrc |
|||||||||||||||||||||||||||||||
cbBmiSrc |
|||||||||||||||||||||||||||||||
offBitsSrc |
|||||||||||||||||||||||||||||||
cbBitsSrc |
|||||||||||||||||||||||||||||||
cxSrc |
|||||||||||||||||||||||||||||||
cySrc |
|||||||||||||||||||||||||||||||
BitmapBuffer (variable) |
|||||||||||||||||||||||||||||||
... |
Type (4 bytes): An unsigned integer that identifies this record type as EMR_TRANSPARENTBLT. This value is 0x00000074.
Bounds (16 bytes): A RectL object ([MS-WMF] section 2.2.2.19) that specifies the destination bounding rectangle in logical coordinates. If the intersection of this rectangle with the current clipping regions (section 3.1.1.2.1) in the playback device context (section 3.1) is empty, this record has no effect.
xDest (4 bytes): A signed integer that specifies the logical x-coordinate of the upper-left corner of the destination rectangle.
yDest (4 bytes): A signed integer that specifies the logical y-coordinate of the upper-left corner of the destination rectangle.
cxDest (4 bytes): A signed integer that specifies the logical width of the destination rectangle.
cyDest (4 bytes): A signed integer that specifies the logical height of the destination rectangle.
TransparentColor (4 bytes): A ColorRef object ([MS-WMF] section 2.2.2.8) that specifies the color in the source bitmap to be treated as transparent.
xSrc (4 bytes): A signed integer that specifies the logical x-coordinate of the upper-left corner of the source rectangle.
ySrc (4 bytes): A signed integer that specifies the logical y-coordinate of the upper-left corner of the source rectangle.
XformSrc (24 bytes): An XForm object (section 2.2.28) that specifies a world-space to page-space transform to apply to the source bitmap.
BkColorSrc (4 bytes): A ColorRef object that specifies the background color of the source bitmap.
UsageSrc (4 bytes): An unsigned integer that specifies how to interpret values in the color table in the source bitmap header. This value is in the DIBColors enumeration (section 2.1.9).
offBmiSrc (4 bytes): An unsigned integer that specifies the offset in bytes, from the start of this record to the source bitmap header.
cbBmiSrc (4 bytes): An unsigned integer that specifies the size in bytes, of the source bitmap header.
offBitsSrc (4 bytes): An unsigned integer that specifies the offset in bytes, from the start of this record to the source bitmap bits.
cbBitsSrc (4 bytes): An unsigned integer that specifies the size in bytes, of the source bitmap bits.
cxSrc (4 bytes): A signed integer that specifies the logical width of the source rectangle.
cySrc (4 bytes): A signed integer that specifies the logical height of the source rectangle.
BitmapBuffer (variable): A buffer containing the source bitmap, which is not required to be contiguous with the fixed portion of the EMR_TRANSPARENTBLT record. Thus, fields in this buffer that are labeled "UndefinedSpace" are optional and MUST be ignored.
-
If the source bitmap color format is 32 bits-per-pixel, only the alpha transparency value in each pixel SHOULD be copied to the destination.<59>
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1UndefinedSpace1 (variable, optional)
...
BmiSrc (variable)
...
UndefinedSpace2 (variable, optional)
...
BitsSrc (variable)
...
-
BmiSrc (variable): The source bitmap header.
-
BitsSrc (variable): The source bitmap bits.
See section 2.3.1 for more bitmap record types.