lufy's legend

标题: LBlendMode.SOURCE_IN [打印本页]

作者: donnier    时间: 2016-12-30 10:57
标题: LBlendMode.SOURCE_IN

var bitmap0 = new LBitmap(bitmapdata0);
            var bitmap1 = new LBitmap(bitmapdata1);
            bitmap1.blendMode = LBlendMode.SOURCE_IN;
            bitmap0.addChild(bitmap1);

            大神,如果这个bitmap0边上带一些半透明的像素,bitmap1不是透明的
            我测试
            出来的效果边也是透明的像素
            按这个解释,是已有内容重叠的地方才绘制,为什么会把已有内容的透明度也算进去了
            我想出来的效果不是透明的,我需要怎么处理



作者: lufy    时间: 2016-12-30 11:10
LBitmap对象没有addChild
作者: donnier    时间: 2016-12-30 11:26
var bitmap0 = new LBitmap(bitmapdata0);
                        var bitmap1 = new LBitmap(bitmapdata1);
                        bitmap1.blendMode = LBlendMode.SOURCE_IN;

                        var layer0=new LSprite();
                        layer0.addChild(bitmap0);
                        layer0.addChild(bitmap1);
我就表达的这个意思,代码写错了
作者: lufy    时间: 2016-12-30 12:12
donnier 发表于 2016-12-30 11:26
var bitmap0 = new LBitmap(bitmapdata0);
                        var bitmap1 = new LBitmap(bitmapdata1);
                        bitmap1.blendM ...

canvas中的source-in就是这个效果,官方给的解释
The new shape is drawn only where both the new shape and the destination canvas overlap. Everything else is made transparent.
我也只是照着翻译一下而已
解决办法,你可能需要修改原图了
作者: donnier    时间: 2016-12-30 13:06
我的意思,一个半透明黑色的圆,覆盖一个红色块,出来的效果应该是红色圆形,而不是半透明的红色圆形

如果确实只能这样,我怎么才能得到出来的是红色的圆形,而不是半透明的红色圆形

我想到的就是把黑色圆形的各像素alpah改为1,这个能给个思路吗
作者: lufy    时间: 2016-12-30 14:08
对,只能改图,因为混色的效果取决于原图




欢迎光临 lufy's legend (http://lufylegend.com/forum/) Powered by Discuz! X2.5