透明前
透明后
实现方法:
是用MARK来实现的。
图片透明效果:
virtual void DrawBitmapMasked(const TRect &aDestRect, const CFbsBitmap *aBitmap, const TRect &aSourceRect, const CFbsBitmap *aMaskBitmap, TBool aInvertMask)=0;
图像的透明显示就是图像的一部分被真实地显示在屏幕上,而其余部分则被屏幕的背景所取代。
为了实现透明或者半透明的效果,一般我们用到一张掩码位图。它实际是一个黑白位图,作用是对其它位图的可见部分进行限制。它由两部分组成,不透明部分和透明部分。当TBool aInvertMask
为ETrue时,白色部分为透明部分。
color 的值为TRgb(255*x,255*x,255*x) x为透明度百分比。
原图TRgb(a1,a2,a3) 背景图TRgb(b1,b2,b3)
与背景色形成新的Rgb值(显示的Rgb)值为
TRgb(a1*x+b1*(1-x),a2*x+b2*(1-x),a3*x+b3*(1-x))