我正在制作一种涂抹工具。我使用以下方法 -
1)在brushAlpha(bitmapData)上画圆。
2)_orignalData.copyPixels(_orignalData,
new Rectangle(oldMouseX, oldMouseY, diameter, diameter),
new Point(mouseX,mouseY), brushAlpha, new Point(0,0), true);
这会创建所需的涂抹效果,但它也会将像素的颜色更改为原色 (RGB),例如,如果像素的颜色为 0xFF8800,它将使其变为 0xFF0000(红色),或者如果像素颜色为 0x0088FF,它将使其变为 0x0000FF
orignalData 是一个透明的位图数据,初始颜色设置为 0x000000;
这个效果是由mergealpha引起的吗?请帮忙
编辑-我做了一些测试,得到了这些结果-
backgroundColor = 0x00000000,foregroundColor = 0xffdaff00 结果 = 0x00ff00(绿色)
背景颜色 = 0xFFFFFFFF ,前景颜色 = 0xffdaff00 结果 = 0xFFFF00(黄色)
backgroundColor = 0xFF0000FF , foregroundColor = 0xffdaff00 结果 = 0x00ff00 (Green) + 过度时它变黑
backgroundColor = 0xFF11FF88,foregroundColor = 0xffdaff00 结果 = 0x00ff00(绿色)+ 过度涂抹时无黑色
我尝试了一些其他颜色也喜欢
背景颜色 = 0xFFFFFFFF ,前景颜色 = 0xFF888800 结果 = 0x808000
背景颜色 = 0x0000000,前景颜色 = 0xFF888800 结果 = 0x000000
有人可以告诉这里发生了什么吗?