栅格图像智能填充算法

时间:2017-02-25 22:43:54

标签: image image-processing rgb pixels

我试图为光栅图像实现泛光填充方法。 对于中心像素来说,它很容易并且工作正确,但问题是填充边框附近的像素,这些像素具有不同的颜色。

例如,如果在白色背景上绘制黑色图形,则某些边框像素将具有一种灰色而不是黑色(用于平滑)。

图像编辑器(如paint.net)在填充期间修复它将这些像素更改为新旧像素之间的某种中间色。这里我用红色填充图形,灰色像素变成红色渐变

img

我需要知道方法或算法如何使用RGB像素操作来填充灰色像素(这里它是红色的,但可以是任何颜色)。

感谢您的帮助。

1 个答案:

答案 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;

它与下面的示例颜色不完全相同,但非常相似。