Z zbzb Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-12 #1 想把一个Canvas上象素为某种颜色的都更换为另外一种颜色 可以通过修改Canvas的Pixels[x,y]属性来逐个象素进行颜色更换,但效率很低。 想请教有没有什么快速的方法可以实现?
N nest Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-13 #3 用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;
用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;