我试图为光栅图像实现泛光填充方法。 对于中心像素来说,它很容易并且工作正确,但问题是填充边框附近的像素,这些像素具有不同的颜色。
例如,如果在白色背景上绘制黑色图形,则某些边框像素将具有一种灰色而不是黑色(用于平滑)。
图像编辑器(如paint.net)在填充期间修复它将这些像素更改为新旧像素之间的某种中间色。这里我用红色填充图形,灰色像素变成红色渐变
我需要知道方法或算法如何使用RGB像素操作来填充灰色像素(这里它是红色的,但可以是任何颜色)。
感谢您的帮助。
答案 0 :(得分:0)
因此,对于类似的效果,例如我们只需要在旧颜色和新颜色之间使用& 操作。
对于RGB颜色:
resultColor.R = (byte)(oldColor.R & newColor.R);
resultColor.G = (byte)(oldColor.G & newColor.G);
resultColor.B = (byte)(oldColor.B & newColor.B);
如果RGB颜色为Int编号:
resultColor = oldColor & newColor;
它与下面的示例颜色不完全相同,但非常相似。