TCanvas之间如果实现Rect的填充操作 ( 积分: 100 )

  • 主题发起人 主题发起人 cheylin
  • 开始时间 开始时间
C

cheylin

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,Canvas1、Canvas2是两个对象的Canvas,现在想把Canvas2的显示内容填充到Canvas1中,用CopyRect好象出错,大家有什么技巧请告知,分数不够再加;

注:这里所讲的Canvas不一定是位图,可能是JPG/TLabel等一切有Canvas属性的对象
 
如题,Canvas1、Canvas2是两个对象的Canvas,现在想把Canvas2的显示内容填充到Canvas1中,用CopyRect好象出错,大家有什么技巧请告知,分数不够再加;

注:这里所讲的Canvas不一定是位图,可能是JPG/TLabel等一切有Canvas属性的对象
 
Image2.Canvas.CopyRect(Image1.ClientRect, Label1.Canvas, Label1.ClientRect);
这样是可以做到的啊,不过就是填充好象是完全填充,不能够说label那里是多大,填充
过来还是多大,除非另一个canvas的大小和前一个一致。
 
前面写错了,是这样的:
Image1.Canvas.CopyRect(Image1.ClientRect, Label1.Canvas, Label1.ClientRect);
 
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap: TBitmap;
MyRect, MyOther: TRect;
begin
MyRect := Rect(10,10,100,100);
MyOther := Rect(10,111,100, 201);
Bitmap := TBitmap.Create;
Bitmap.Assign(Img2.Picture.Bitmap);
Form1.Canvas.BrushCopy(MyRect, Bitmap, MyRect, clBlack);
Form1.Canvas.CopyRect(MyOther,Bitmap.Canvas,MyRect);
Bitmap.Free;
end;
 
两们的办法对Label/BMP能解决
请问对JPG如何办法处理
 
可以将JPG转成BMP再处理。
 
自己找到办法了,谢谢几位
 
cheylin,你的问题是如何解决的啊?我这有个和你类似的问题,不知能不能帮忙看看.能留下联系方式吗?QQ,MSN都可以啊,我QQ:4184443,MSN:qingwen07@hotmail.com,希望大哥看到留言给我发个消息啊,先谢谢了!呵呵!
 
JPG好像没有Canvas,只要在内存转成TBitmap,然后在TCanvas填上就可以CopyRect了
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部