勇芳软件工作室.汉化:  Painting and Drawing > Raster Operation Codes >

Ternary Raster Operations

Previous pageReturn to chapter overviewNext page

本节列出BitBltPatBltStretchBlt功能使用的三进制栅格操作代码。三进制光栅操作代码定义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