请教高手!一幅背景图,一幅前景图,能改前景图不能改背景图,急!(50分)

  • 主题发起人 主题发起人 anron
  • 开始时间 开始时间
A

anron

Unregistered / Unconfirmed
GUEST, unregistred user!
我有两幅图一个做背景,一个做前景,前景图需要修改,但背景图不需要修改.
试过很多种方法都不行,实在没法了.
1、首先想到的是用2个IMAGE,第二个做成透明,但是在画图时,闪烁得厉害,加了
DoubleBuffered后,却又奇慢,因为我的图有700多K,我试过二三十K就没问题.
2、在一个IMAGE中放入二个图,再在这基本上画,但是我用橡皮擦时就把背景图给擦了
3、背景用IMAGE显示,前景用LABEL显示,但LABEL刷新时会把CANVAS的东西级擦了,OVERRIDE
,LABEL的PAINT,在这里面重新画刚才的东西,哦这个好了可又有新问题,就是用橡皮擦
时,能把LABEL中的擦掉,但那一部分却不透明了.
求救各位大哥了.
 
何必要用Image空间呢?
可以使用直接绘制吗?
建立起三个TBitmap数据,一个是背景,一个是前景,最后一个是合成图。
现在合成图中完成作品,最后贴到窗口上。不就完成了吗?
另外多依据,如果要透明复制前景的话:
制作两张图:屏蔽图,原图。
运用CopyRect函数:
第一次使用CopyMode:=cmSrcAnd属性进行复制屏蔽图
第二次使用CopyMode:=cmSrcPaint属性进行复制原图。
注意:屏蔽图背景白色,内容黑色。原图背景黑色。
 
尝试使用paintbox,利用canvas,copyrect等画图
 
要实时的反映橡皮插的时候前景变,背景不变的话,非常难。常规作图函数都不支持怎么高的象素处理速度。非OPENGL和DX不能做。如果你的橡皮是矩形的。请
在MOUSEMOVE中先备份要被插曲的矩形的RECT到一个BMP里去。鼠标离开这个地方的时候,立刻补画回来。但是很有可能贴的速度跟不上鼠标的速度。。
 
想一想,用做透明控件的方法呢.我不知道你具体的需求
 
后退
顶部