本节列出BitBlt,PatBlt和StretchBlt功能使用的三进制栅格操作代码。三进制光栅操作代码定义GDI如何将源位图中的位与目标位图中的位组合。
每个光栅操作代码表示一个布尔运算,其中源,像素,目标中的像素的值被组合。以下是这些操作中使用的三个操作数。
操作数 |
含义 |
D |
目标位图 |
P |
所选画笔(也称为图案) |
S |
源位图 |
这些操作中使用的布尔运算符如下。
操作者 |
含义 |
a |
按位AND |
n |
按位NOT(反) |
o |
按位OR |
x |
按位异或(XOR) |
所有布尔运算都以相反的波兰符号表示。例如,以下操作将使用源和画笔的像素值的组合替换目标位图中的像素值:
PSo
以下操作将源和画笔中的像素值与目标位图的像素值相结合(有相同功能的替代拼写,因此尽管特定的拼写可能不在列表中,但是等同的形式) :
DPSoo
每个光栅操作代码是一个32位整数,其高位字是布尔运算索引,低位字是操作码。16位操作索引是零扩展的8位值,表示预定义的画笔,源和目标值上的布尔运算结果。例如,PSo和DPSoo操作的操作索引如下列表所示。
P |
S |
D |
PSo |
DPSoo |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
经营指标: |
00FCh |
00FEh |
在这种情况下,PSo具有操作索引00FC(从下向上读取); DPSoo具有操作指数00FE。这些值定义了相应栅格操作代码的位置,如表A.1“光栅操作代码”所示。 PSo操作在表的第252行(00FCh)中; DPSoo在第254行(00FEh)。
最常用的栅格操作已经在SDK头文件windows.inc中给出了特殊的名称。您应该在应用程序中尽可能使用这些名称。
当源和目标位图为单色时,位值为零表示黑色像素,位值为1表示白色像素。源和目标位图是颜色时,这些颜色用RGB值表示。
光栅操作代码
布尔函数(十六进制) |
光栅操作(十六进制) |
布尔函数反向波兰语 |
通用名称 |
00 |
00000042 |
0 |
BLACKNESS |
01 |
00010289 |
DPSoon |
|
02 |
00020C89 |
DPSona |
|
03 |
000300AA |
PSon |
|
04 |
00040C88 |
SDPona |
|
05 |
000500A9 |
DPon |
|
06 |
00060865 |
PDSxnonPDSxnon |
|
08 |
00080F08 |
SDPnaa |
|
09 |
00090245 |
PDSxon |
|
0A |
000A0329 |
DPna |
|
0B |
000B0B2A |
PSDnaon |
|
0C |
000C0324 |
SPna |
|
0D |
000D0B25 |
PDSnaon |
|
0E |
000E08A5 |
PDSonon |
|
0F |
000F0001 |
Pn |
|
10 |
00100C85 |
PDSona |
|
11 |
001100A6 |
DSon |
NOTSRCERASE |
12 |
00120868 |
SDPxnon |
|
13 |
001302C8 |
SDPaon |
|
14 |
00140869 |
DPSxnon |
|
15 |
001502C9 |
DPSaon |
|
16 |
00165CCA |
PSDPSanaxx |
|
17 |
00171D54 |
SSPxDSxaxn |
|
18 |
00180D59 |
SPxPDxa |
|
19 |
00191CC8 |
SDPSanaxn |
|
1A |
001A06C5 |
PDSPaox |
|
1B |
001B0768 |
SDPSxaxn |
|
1C |
001C06CA |
PSDPaox |
|
1D |
001D0766 |
DSPDxaxn |
|
1E |
001E01A5 |
PDSox |
|
1F |
001F0385 |
PDSoan |
|
20 |
00200F09 |
DPSnaa |
|
21 |
00210248 |
SDPxon |
|
22 |
00220326 |
DSna |
|
23 |
00230B24 |
SPDnaon |
|
24 |
00240D55 |
SPxDSxa |
|
25 |
00251CC5 |
PDSPanaxn |
|
26 |
002606C8 |
SDPSaox |
|
27 |
00271868 |
SDPSxnox |
|
28 |
00280369 |
DPSxa |
|
29 |
002916CA |
PSDPSaoxxn |
|
2A |
002A0CC9 |
DPSana |
|
2B |
002B1D58 |
SSPxPDxaxn |
|
2C |
002C0784 |
SPDSoax |
|
2D |
002D060A |
PSDnox |
|
2E |
002E064A |
PSDPxox |
|
2F |
002F0E2A |
PSDnoan |
|
30 |
0030032A |
PSna |
|
31 |
00310B28 |
SDPnaon |
|
32 |
00320688 |
SDPSoox |
|
33 |
00330008 |
Sn |
NOTSRCCOPY |
34 |
003406C4 |
SPDSaox |
|
35 |
00351864 |
SPDSxnox |
|
36 |
003601A8 |
SDPox |
|
37 |
00370388 |
SDPoan |
|
38 |
0038078A |
PSDPoax |
|
39 |
00390604 |
SPDnox |
|
3A |
003A0644 |
SPDSxox |
|
3B |
003B0E24 |
SPDnoan |
|
3C |
003C004A |
PSx |
|
3D |
003D18A4 |
SPDSonox |
|
3E |
003E1B24 |
SPDSnaox |
|
3F |
003F00EA |
PSan |
|
40 |
00400F0A |
PSDnaa |
|
41 |
00410249 |
DPSxon |
|
42 |
00420D5D |
SDxPDxa |
|
43 |
00431CC4 |
SPDSanaxn |
|
44 |
00440328 |
SDna |
SRCERASE |
45 |
00450B29 |
DPSnaon |
|
46 |
004606C6 |
DSPDaox |
|
47 |
0047076A |
PSDPxaxn |
|
48 |
00480368 |
SDPxa |
|
49 |
004916C5 |
PDSPDaoxxn |
|
4A |
004A0789 |
DPSDoax |
|
4B |
004B0605 |
PDSnox |
|
4C |
004C0CC8 |
SDPana |
|
4D |
004D1954 |
SSPxDSxoxn |
|
4E |
004E0645 |
PDSPxox |
|
4F |
004F0E25 |
PDSnoan |
|
50 |
00500325 |
PDna |
|
51 |
00510B26 |
DSPnaon |
|
52 |
005206C9 |
DPSDaox |
|
53 |
00530764 |
SPDSxaxn |
|
54 |
005408A9 |
DPSonon |
|
55 |
00550009 |
Dn |
DSTINVERT |
56 |
005601A9 |
DPSox |
|
57 |
00570389 |
DPSoan |
|
58 |
00580785 |
PDSPoax |
|
59 |
00590609 |
DPSnox |
|
5A |
005A0049 |
DPx |
PATINVERT |
5B |
005B18A9 |
DPSDonox |
|
5C |
005C0649 |
DPSDxox |
|
5D |
005D0E29 |
DPSnoan |
|
5E |
005E1B29 |
DPSDnaox |
|
5F |
005F00E9 |
DPan |
|
60 |
00600365 |
PDSxa |
|
61 |
006116C6 |
DSPDSaoxxn |
|
62 |
00620786 |
DSPDoax |
|
63 |
00630608 |
SDPnox |
|
64 |
00640788 |
SDPSoax |
|
65 |
00650606 |
DSPnox |
|
66 |
00660046 |
DSx |
SRCINVERT |
67 |
006718A8 |
SDPSonox |
|
68 |
006858A6 |
DSPDSonoxxn |
|
69 |
00690145 |
PDSxxn |
|
6A |
006A01E9 |
DPSax |
|
6B |
006B178A |
PSDPSoaxxn |
|
6C |
006C01E8 |
SDPax |
|
6D |
006D1785 |
PDSPDoaxxn |
|
6E |
006E1E28 |
SDPSnoax |
|
6F |
006F0C65 |
PDSxnan |
|
70 |
00700CC5 |
PDSana |
|
71 |
00711D5C |
SSDxPDxaxn |
|
72 |
00720648 |
SDPSxox |
|
73 |
00730E28 |
SDPnoan |
|
74 |
00740646 |
DSPDxox |
|
75 |
00750E26 |
DSPnoan |
|
76 |
00761B28 |
SDPSnaox |
|
77 |
007700E6 |
DSan |
|
78 |
007801E5 |
PDSax |
|
79 |
00791786 |
DSPDSoaxxn |
|
7A |
007A1E29 |
DPSDnoax |
|
7B |
007B0C68 |
SDPxnan |
|
7C |
007C1E24 |
SPDSnoax |
|
7D |
007D0C69 |
DPSxnan |
|
7E |
007E0955 |
SPxDSxo |
|
7F |
007F03C9 |
DPSaan |
|
80 |
008003E9 |
DPSaa |
|
81 |
00810975 |
SPxDSxon |
|
82 |
00820C49 |
DPSxna |
|
83 |
00831E04 |
SPDSnoaxn |
|
84 |
00840C48 |
SDPxna |
|
85 |
00851E05 |
PDSPnoaxn |
|
86 |
008617A6 |
DSPDSoaxx |
|
87 |
008701C5 |
PDSaxn |
|
88 |
008800C6 |
DSa |
SRCAND |
89 |
00891B08 |
SDPSnaoxn |
|
8A |
008A0E06 |
DSPnoa |
|
8B |
008B0666 |
DSPDxoxn |
|
8C |
008C0E08 |
SDPnoa |
|
8D |
008D0668 |
SDPSxoxn |
|
8E |
008E1D7C |
SSDxPDxax |
|
8F |
008F0CE5 |
PDSanan |
|
90 |
00900C45 |
PDSxna |
|
91 |
00911E08 |
SDPSnoaxn |
|
92 |
009217A9 |
DPSDPoaxx |
|
93 |
009301C4 |
SPDaxn |
|
94 |
009417AA |
PSDPSoaxx |
|
95 |
009501C9 |
DPSaxn |
|
96 |
00960169 |
DPSxx |
|
97 |
0097588A |
PSDPSonoxx |
|
98 |
00981888 |
SDPSonoxn |
|
99 |
00990066 |
DSxn |
|
9A |
009A0709 |
DPSnax |
|
9B |
009B07A8 |
SDPSoaxn |
|
9C |
009C0704 |
SPDnax |
|
9D |
009D07A6 |
DSPDoaxn |
|
9E |
009E16E6 |
DSPDSaoxx |
|
9F |
009F0345 |
PDSxan |
|
A0 |
00A000C9 |
DPa |
|
A1 |
00A11B05 |
PDSPnaoxn |
|
A2 |
00A20E09 |
DPSnoa |
|
A3 |
00A30669 |
DPSDxoxn |
|
A4 |
00A41885 |
PDSPonoxn |
|
A5 |
00A50065 |
PDxn |
|
A6 |
00A60706 |
DSPnax |
|
A7 |
00A707A5 |
PDSPoaxn |
|
A8 |
00A803A9 |
DPSoa |
|
A9 |
00A90189 |
DPSoxn |
|
AA |
00AA0029 |
D |
|
AB |
00AB0889 |
DPSono |
|
AC |
00AC0744 |
SPDSxax |
|
AD |
00AD06E9 |
DPSDaoxn |
|
AE |
00AE0B06 |
DSPnao |
|
AF |
00AF0229 |
DPno |
|
B0 |
00B00E05 |
PDSnoa |
|
B1 |
00B10665 |
PDSPxoxn |
|
B2 |
00B21974 |
SSPxDSxox |
|
B3 |
00B30CE8 |
SDPanan |
|
B4 |
00B4070A |
PSDnax |
|
B5 |
00B507A9 |
DPSDoaxn |
|
B6 |
00B616E9 |
DPSDPaoxx |
|
B7 |
00B70348 |
SDPxan |
|
B8 |
00B874A |
PSDPxax |
|
B9 |
00B906E6 |
DSPDaoxn |
|
BA |
00BA0B09 |
DPSnao |
|
BB |
00BB0226 |
DSno |
MERGEPAINT |
BC |
00BC1CE4 |
SPDSanax |
|
BD |
00BD0D7D |
SDxPDxan |
|
BE |
00BE0269 |
DPSxo |
|
BF |
00BF08C9 |
DPSano |
|
C0 |
00C000CA |
PSa |
MERGECOPY |
C1 |
00C11B04 |
SPDSnaoxn |
|
C2 |
00C21884 |
SPDSonoxn |
|
C3 |
00C3006A |
PSxn |
|
C4 |
00C40E04 |
SPDnoa |
|
C5 |
00C50664 |
SPDSxoxn |
|
C6 |
00C60708 |
SDPnax |
|
C7 |
00C707AA |
PSDPoaxn |
|
C8 |
00C803A8 |
SDPoa |
|
C9 |
00C90184 |
SPDoxn |
|
CA |
00CA0749 |
DPSDxax |
|
CB |
00CB06E4 |
SPDSaoxn |
|
CC |
00CC0020 |
S |
SRCCOPY |
CD |
00CD0888 |
SDPono |
|
CE |
00CE0B08 |
SDPnao |
|
CF |
00CF0224 |
SPno |
|
D0 |
00D00E0A |
PSDnoa |
|
D1 |
00D1066A |
PSDPxoxn |
|
D2 |
00D20705 |
PDSnax |
|
D3 |
00D307A4 |
SPDSoaxn |
|
D4 |
00D41D78 |
SSPxPDxax |
|
D5 |
00D50CE9 |
DPSanan |
|
D6 |
00D616EA |
PSDPSaoxx |
|
D7 |
00D70349 |
DPSxan |
|
D8 |
00D80745 |
PDSPxax |
|
D9 |
00D906E8 |
SDPSaoxn |
|
DA |
00DA1CE9 |
DPSDanax |
|
DB |
00DB0D75 |
SPxDSxan |
|
DC |
00DC0B04 |
SPDnao |
|
DD |
00DD0228 |
SDno |
|
DE |
00DE0268 |
SDPxo |
|
DF |
00DF08C8 |
SDPano |
|
E0 |
00E003A5 |
PDSoa |
|
E1 |
00E10185 |
PDSoxn |
|
E2 |
00E20746 |
DSPDxax |
|
E3 |
00E306EA |
PSDPaoxn |
|
E4 |
00E40748 |
SDPSxax |
|
E5 |
00E506E5 |
PDSPaoxn |
|
E6 |
00E61CE8 |
SDPSanax |
|
E7 |
00E70D79 |
SPxPDxan |
|
E8 |
00E81D74 |
SSPxDSxax |
|
E9 |
00E95CE6 |
DSPDSanaxxn |
|
EA |
00EA02E9 |
DPSao |
|
EB |
00EB0849 |
DPSxno |
|
EC |
00EC02E8 |
SDPao |
|
ED |
00ED0848 |
SDPxno |
|
EE |
00EE0086 |
DSo |
SRCPAINT |
EF |
00EF0A08 |
SDPnoo |
|
F0 |
00F00021 |
P |
PATCOPY |
F1 |
00F10885 |
PDSono |
|
F2 |
00F20B05 |
PDSnao |
|
F3 |
00F3022A |
PSno |
|
F4 |
00F40B0A |
PSDnao |
|
F5 |
00F50225 |
PDno |
|
F6 |
00F60265 |
PDSxo |
|
F7 |
00F708C5 |
PDSano |
|
F8 |
00F802E5 |
PDSao |
|
F9 |
00F90845 |
PDSxno |
|
FA |
00FA0089 |
DPo |
|
FB |
00FB0A09 |
DPSnoo |
PATPAINT |
FC |
00FC008A |
PSo |
|
FD |
00FD0A0A |
PSDnoo |
|
FE |
00FE02A9 |
DPSoo |
|
FF |
00FF0062 |
1 |
WHITENESS |
8000 |
80000000 |
Windows 98 / Me,Windows 2000 / XP/ VISTA / Windows 7的: NOMIRRORBITMAP |


