如何清除在image.canvas上画的东西?

leonyuann 2004-12-06 09:37:29
我在image的canvas上作如下工作:在任意鼠标点击处(posx,posy)画圆
var
r1:TRect;
begin
r1.left:=posx-1;
r1.top:=posy-1;
r1.right:=posx+1;
r1.bottom:=posy+1;
image1.Canvas.Pen.Color:=clred;
image1.Canvas.Brush.Color:=clred;
image1.Canvas.Ellipse(r1);
现在想清除这些圆点,试了canvas.repaint canvas.refresh都不管用,该如何解决?
...全文
346 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
S.F. 2004-12-08
  • 打赏
  • 举报
回复
这个太简单了;在绘图前加入

Image1.Canvas.Brush.Color := ClWhite; //清除原来的图象为白色
Image1.Canvas.FillRect(Canvas.ClipRect);
leonyuann 2004-12-08
  • 打赏
  • 举报
回复
duxin(小伍),不太明白你说的意思,给我个memo吧,hotyly@163.com
duxin 2004-12-08
  • 打赏
  • 举报
回复
双指针 作图软件我写过 都是用指针记录画前的Image 如果画上是不好清除的

方法是在画前把当前Image给一个指针记录 然后进行画图, 不保存就恢复以前的

再用一个 记录原始Image 擦除时取对应坐标的值 ,有需要给你个mome
alimyso 2004-12-08
  • 打赏
  • 举报
回复
Image1.Picture.Bitmap.LoadFromFile(文件路径)
Allblus 2004-12-08
  • 打赏
  • 举报
回复
建立一个链表:
type pRect=^recordRect;
recordRect=record
originP,finalP:TPoint;
rectColor:TColor;
fillColor:TColor;
next:pRect;
end;

不就可以undo了吗?
leonyuann 2004-12-07
  • 打赏
  • 举报
回复
alimyso(杨桦) 能说清楚点吗?
alimyso 2004-12-07
  • 打赏
  • 举报
回复
重新装载一下图片就可以了,其实想去掉其中任意一个点才有难度呢.
leonyuann 2004-12-06
  • 打赏
  • 举报
回复
csdnloading(楼顶主人) ,我要清除所有的圆点啊!不是就一个圆点
leonyuann 2004-12-06
  • 打赏
  • 举报
回复
zhmnsw(糖醋鼻子),如果用2个iamge,一个当背景(比如画50*50的网格),一个画图(任意的圆点),画点时有很长的延时,怎么解决?
yunzhonghua001 2004-12-06
  • 打赏
  • 举报
回复
那些是属于噪声吗?
lybingyu 2004-12-06
  • 打赏
  • 举报
回复
不会,UP
糖醋鼻子 2004-12-06
  • 打赏
  • 举报
回复
建议用两个Image控件一个背景
一个作图

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧