1

我正在制作一种涂抹工具。我使用以下方法 -

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

有人可以告诉这里发生了什么吗?

4

0 回答 0