2.3.1.6 EMR_STRETCHBLT Record
The EMR_STRETCHBLT record specifies a block transfer of pixels from a source bitmap to a destination rectangle, optionally in combination with a brush pattern, according to a specified raster operation, stretching or compressing the output to fit the dimensions of the destination, if necessary.
Fields not specified in this section are specified in section 2.3.1.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Type |
|||||||||||||||||||||||||||||||
Size |
|||||||||||||||||||||||||||||||
Bounds |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
xDest |
|||||||||||||||||||||||||||||||
yDest |
|||||||||||||||||||||||||||||||
cxDest |
|||||||||||||||||||||||||||||||
cyDest |
|||||||||||||||||||||||||||||||
BitBltRasterOperation |
|||||||||||||||||||||||||||||||
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_STRETCHBLT. This value is 0x0000004D.
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.
BitBltRasterOperation (4 bytes): An unsigned integer that specifies the raster operation code. This code defines how the color data of the source rectangle is to be combined with the color data of the destination rectangle and optionally a brush pattern, to achieve the final color.
This value is in the Ternary Raster Operation enumeration ([MS-WMF] section 2.1.1.31).
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 ([MS-WMF] section 2.2.2.8) 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_STRETCHBLT record. Thus, fields in this buffer that are labeled "UndefinedSpace" are optional and MUST be ignored.
-
If the raster operation specified by BitBltRasterOperation does not require a source bitmap, the source bitmap can be omitted.
-
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.