bitblt函数怎么用啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bitblt函数怎么用啊?相关的知识,希望对你有一定的参考价值。
bitblt:该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
用法参数:
hDestDC:指向目标设备环境的句柄。
x:指定目标矩形区域左上角的X轴逻辑坐标。
y:指定目标矩形区域左上角的Y轴逻辑坐标。
nWidth:指定源在目标矩形区域的逻辑宽度。
nHeight:指定源在目标矩形区域的逻辑高度。
hSrcDC:指向源设备环境的句柄。
xSrc:指定源矩形区域左上角的X轴逻辑坐标。
ySrc:指定源矩形区域左上角的Y轴逻辑坐标。
dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
下面列出了一些常见的光栅操作代码:
BLACKNESS:表示使用与物理调色板的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。
DSTINVERT:表示使目标矩形区域颜色取反。
MERGECOPY:表示使用布尔型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。
MERGEPAINT:通过使用布尔型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。
NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。
NOTSRCERASE:使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。
PATCOPY:将特定的模式拷贝到目标位图上。
PATPAINT:通过使用布尔OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。
PATINVERT:通过使用XOR(异或)操作符将源和目标矩形区域内的颜色合并。
SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。
SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。
SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。
SRCINVERT:通过使用布尔型的XOR(异或)操作符将源和目标矩形区域的颜色合并。
SRCPAINT:通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。
WHITENESS:使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。
dwRop Values
From wingdi.h:
#define BLACKNESS 0x42
#define DSTINVERT 0x550009
#define MERGECOPY 0xC000CA
#define MERGEPAINT 0xBB0226
#define NOTSRCCOPY 0x330008
#define NOTSRCERASE 0x1100A6
#define PATCOPY 0xF00021
#define PATINVERT 0x5A0049
#define PATPAINT 0xFB0A09
#define SRCAND 0x8800C6
#define SRCCOPY 0xCC0020
#define SRCERASE 0x440328
#define SRCINVERT 0x660046
#define SRCPAINT 0xEE0086
#define WHITENESS 0xFF0062
参考技术A specified source device context into a destination device context.
Syntax
Parameters
hdcDest [in]
A handle to the destination device context.
nXDest [in]
The x-coordinate, in logical units, of the upper-left corner of the destination rectangle.
nYDest [in]
The y-coordinate, in logical units, of the upper-left corner of the destination rectangle.
nWidth [in]
The width, in logical units, of the source and destination rectangles.
nHeight [in]
The height, in logical units, of the source and the destination rectangles.
hdcSrc [in]
A handle to the source device context.
nXSrc [in]
The x-coordinate, in logical units, of the upper-left corner of the source rectangle.
nYSrc [in]
The y-coordinate, in logical units, of the upper-left corner of the source rectangle.
dwRop [in]
A raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. The following list shows some common raster operation codes.
Value Meaning
BLACKNESS
CAPTUREBLT
DSTINVERT
MERGECOPY
MERGEPAINT
NOMIRRORBITMAP
NOTSRCCOPY
NOTSRCERASE
PATCOPY
PATINVERT
PATPAINT
SRCAND
SRCCOPY
SRCERASE
SRCINVERT
SRCPAINT
WHITENESS
Return value
If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
BitBlt only does clipping on the destination DC. If a rotation or shear transformation is in effect in the source device context, BitBlt returns an error. If other transformations exist in the source device context (and a matching transformation is not in effect in the destination device context), the rectangle in the destination device context is stretched, compressed, or rotated, as necessary. If the color formats of the source and destination device contexts do not match, the BitBlt function converts the source color format to match the destination format. When an enhanced metafile is being recorded, an error occurs if the source device context identifies an enhanced-metafile device context. Not all devices support the BitBlt function. For more information, see the RC_BITBLT raster capability entry in the GetDeviceCaps function as well as the following functions: MaskBlt, PlgBlt, and StretchBlt. BitBlt returns an error if the source and destination device contexts represent different devices. To transfer data between DCs for different devices, convert the memory bitmap to a DIB by calling GetDIBits. To display the DIB to the second device, call SetDIBits or StretchDIBits. ICM: No color management is performed when blits occur.
Examples
For an example, see Capturing an Image.
Requirements
Minimum supported client Windows 2000 Professional
Minimum supported server Windows 2000 Server
Header Wingdi.h (include Windows.h)
Library Gdi32.lib
DLL Gdi32.dll
See also
Bitmaps Overview Bitmap Functions GetDeviceCaps GetDIBits MaskBlt PlgBlt SetDIBits StretchBlt StretchDIBits
strtok函数怎么用啊?
参考技术A 其实你输入的是一个字符串,然后程序对输入用strtok解析得到各个坐标对字符串src
=
"n1,n2,n3,n4"的解析如下
char*
p;
int
x1,
x2,
y1.
y2;
p
=
strtok(src,
",");
x1
=
atoi(p);
p
=
strtok(NULL,
",");
x2
=
atoi(p);
p
=
strtok(NULL,
",");
y1
=
atoi(p);
p
=
strtok(NULL,
",");
y2
=
atoi(p);
//看上面应该get
it
了吧
以上是关于bitblt函数怎么用啊?的主要内容,如果未能解决你的问题,请参考以下文章