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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

来弄个表格:
技术分享原图

CopyMode 效果
Blackness  技术分享 用黑色填充目标矩形区域.
Whiteness 技术分享 用白色填充目标矩形区域
DstInvert 技术分享 将目标矩形图象进行反相
MERGECOPY 技术分享 将源矩形图象与指定的图案刷(Pattern)进行布尔"与"运算
MERGEPAINT 技术分享 将源矩形图形经过反相后,与目标矩形图象进行布尔"或"运算
NOTSRCCOPY 技术分享 将源矩形图象经过反相后,复制到目标矩形上
NOTSRCERASE 技术分享 先将源矩形图象与目标矩形图象进行布尔"或"运算,然后再将得图象进行反相
PATCOPY 技术分享 将指定的图案刷复制到目标矩形上
PATINVERT 技术分享 将指定的图案刷与目标矩形图象进行布尔"异或"运算
PATPAINT 技术分享 先将源矩形图象进行反相,与指定的图案刷进行布尔"或"运算,再与目标矩形图象进行布尔"或"运算SRCAND 将源矩形图象与目标矩形图象进行布尔"与"运算
SRCCOPY 技术分享 将源矩形图象直接复制到目标矩形上
SRCERASE 技术分享 将目标矩形图象进行反相,再与源矩形图象进行布尔"与"运算
SRCINVERT 技术分享 将源矩形图象与目标矩形图象进行布尔"异或"运算
SRCPAINT 技术分享 将源矩形图象与目标矩形图象进行布尔"或"运算

好.Bye

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

以上是关于TCanvas.CopyRect方法中参数CopyMode的意义的主要内容,如果未能解决你的问题,请参考以下文章

iOS中的assign,retain,copy等

列表 list.copy()方法

Python 字典 copy()方法

Java中的参数传递方式到底是引用传递还是值传递?

属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在哪种情况下用?

@property 参数