我正在做一个涂抹工具。我使用以下方法 -
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 result = 0x00ff00(绿色)
backgroundColor = 0xFFFFFFFF,foregroundColor = 0xffdaff00 result = 0xFFFF00(黄色)
backgroundColor = 0xFF0000FF,foregroundColor = 0xffdaff00 result = 0x00ff00(绿色)+当过度使用时变黑;
backgroundColor = 0xFF11FF88,foregroundColor = 0xffdaff00 结果= 0x00ff00(绿色)+过度污迹时没有黑色
我尝试了其他一些颜色,如
backgroundColor = 0xFFFFFFFF,foregroundColor = 0xFF888800 结果= 0x808000
backgroundColor = 0x0000000,foregroundColor = 0xFF888800 result = 0x000000
有人能告诉我们这里发生了什么吗?