图像的清除问题(高手请进,看似非常简单的东西,可是很难) 急急急!!!! (100分)

  • 主题发起人 主题发起人 小乔
  • 开始时间 开始时间

小乔

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗体的画布上画了一幅图片,我用什么办法可以清除掉这幅图呢,
比如说是动画的实现,但我不希望用窗体的刷新事件,最好用图片的异或操作方式?
另外注明:我要清除的是一幅图片,而不是用Pen画的线或是Brush填充的方框,
而且背景是变化的,请各位帮帮忙!
 
如此。

Canvas.Pen.Color := clMenu;
Canvas.Brush.Color := clMenu;
Canvas.Rectangle(0,0,50,50);

把Retangle 的四个参数换成你画的矩形的四个参数就可以了。

不过要注意的是清除完了,要记得恢复 Canvas.Pen.Color 与 Canvas.Brush.Color
 
图片也是一样的。

Canvas.Pen.Color := clMenu;
Canvas.Brush.Color := clMenu;
Canvas.Rectangle(50, 50, Image1.Width, Image1.Height);
 
在原画的区域用背景色重画一长方形!
 
可是我要清除的是一幅图片,而不是用Pen画的线或是Brush填充的方框,
而且背景是变化的,又该怎么办呢?
 
为什么不用双缓存技术?
先在背景图片内绘制好所有下一帧图形,然后一次bitblt到前台。
 
redrawwindow(form1.handle, nil, 0, RDW_ERASE or RDW_INVALIDATE or RDW_ERASENOW or RDW_ALLCHILDREN);
 
1、在x,y处绘制前景图片
2、保存x,y处的背景图片(大小由前景图片决定)
3、在x,y处绘制保存的背景图
4、在新位置x1,y1处绘制前景图片
 
多人接受答案了。
 

Similar threads

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