请教如何快速替换Canvas上的某种颜色?(20分)

  • 主题发起人 主题发起人 zbzb
  • 开始时间 开始时间
Z

zbzb

Unregistered / Unconfirmed
GUEST, unregistred user!
想把一个Canvas上象素为某种颜色的都更换为另外一种颜色
可以通过修改Canvas的Pixels[x,y]属性来逐个象素进行颜色更换,但效率很低。
想请教有没有什么快速的方法可以实现?
 
晕,有没有人帮忙解决一下。[:(]
 
用BrushCopy:
r: TRect;
bmp: TBitmap;
begin
bmp:=TBitmap.Create;
bmp.Assign(Image1.Picture.Bitmap);
r:=Image1.Picture.Bitmap.Canvas.ClipRect;
bmp.Canvas.Brush.Color:=clRed;//目的颜色
bmp.Canvas.Brush.Style:=bsSolid;
bmp.Canvas.BrushCopy(r,Image1.Picture.Bitmap,r,clGreen);//要被替换的颜色
Image1.Picture.Bitmap.Canvas.CopyRect(r,bmp.Canvas,r);
bmp.Free;
 
接受答案了.
 

Similar threads

后退
顶部