TCanvas.CopyRect方法中参数CopyMode的意义

首先看可能取值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cmBlackness = BLACKNESS;
cmDstInvert = DSTINVERT;
cmMergeCopy = MERGECOPY;
cmMergePaint = MERGEPAINT;
cmNotSrcCopy = NOTSRCCOPY;
cmNotSrcErase = NOTSRCERASE;
cmPatCopy = PATCOPY;
cmPatInvert = PATINVERT;
cmPatPaint = PATPAINT;
cmSrcAnd = SRCAND;
cmSrcCopy = SRCCOPY;
cmSrcErase = SRCERASE;
cmSrcInvert = SRCINVERT;
cmSrcPaint = SRCPAINT;
cmWhiteness = WHITENESS;

看效果.来点儿代码试一下:

1
2
3
4
5
6
7
8
9
10
11
12
procedure  TForm3 . Button1Click(Sender: TObject);
var
   RC1,RC2:TRect;
begin
   RC1:=Rect( 0 , 0 ,img1 . Width,img1 . Height);
   RC2:=Rect( 0 , 0 ,img2 . Width,img2 . Height);
   with  img2 . Canvas do
   begin
     CopyMode:=cmBlackness; //就改这个
     CopyRect(RC1,img1 . Canvas,RC2);
   end ;
end ;

来弄个表格:
TCanvas.CopyRect方法中参数CopyMode的意义_第1张图片原图

CopyMode 效果
Blackness  TCanvas.CopyRect方法中参数CopyMode的意义_第2张图片 用黑色填充目标矩形区域.
Whiteness TCanvas.CopyRect方法中参数CopyMode的意义_第3张图片 用白色填充目标矩形区域
DstInvert TCanvas.CopyRect方法中参数CopyMode的意义_第4张图片 将目标矩形图象进行反相
MERGECOPY TCanvas.CopyRect方法中参数CopyMode的意义_第5张图片 将源矩形图象与指定的图案刷(Pattern)进行布尔"与"运算
MERGEPAINT TCanvas.CopyRect方法中参数CopyMode的意义_第6张图片 将源矩形图形经过反相后,与目标矩形图象进行布尔"或"运算
NOTSRCCOPY TCanvas.CopyRect方法中参数CopyMode的意义_第7张图片 将源矩形图象经过反相后,复制到目标矩形上
NOTSRCERASE TCanvas.CopyRect方法中参数CopyMode的意义_第8张图片 先将源矩形图象与目标矩形图象进行布尔"或"运算,然后再将得图象进行反相
PATCOPY TCanvas.CopyRect方法中参数CopyMode的意义_第9张图片 将指定的图案刷复制到目标矩形上
PATINVERT TCanvas.CopyRect方法中参数CopyMode的意义_第10张图片 将指定的图案刷与目标矩形图象进行布尔"异或"运算
PATPAINT TCanvas.CopyRect方法中参数CopyMode的意义_第11张图片 先将源矩形图象进行反相,与指定的图案刷进行布尔"或"运算,再与目标矩形图象进行布尔"或"运算SRCAND 将源矩形图象与目标矩形图象进行布尔"与"运算
SRCCOPY TCanvas.CopyRect方法中参数CopyMode的意义_第12张图片 将源矩形图象直接复制到目标矩形上
SRCERASE TCanvas.CopyRect方法中参数CopyMode的意义_第13张图片 将目标矩形图象进行反相,再与源矩形图象进行布尔"与"运算
SRCINVERT TCanvas.CopyRect方法中参数CopyMode的意义_第14张图片 将源矩形图象与目标矩形图象进行布尔"异或"运算
SRCPAINT TCanvas.CopyRect方法中参数CopyMode的意义_第15张图片 将源矩形图象与目标矩形图象进行布尔"或"运算

好.Bye

http://www.cnblogs.com/huangjacky/archive/2010/02/27/1674653.html

你可能感兴趣的:(TCanvas.CopyRect方法中参数CopyMode的意义)