在单击的图像上使用带有填充区域蒙版的泛洪填充算法

时间:2019-07-12 12:06:48

标签: android flood-fill

我已经通过使用Flood Fill算法开发了Android Paint APP。事情在某种程度上很酷,但是我在实现三件事上遇到了问题。

A)如果我单击像素(即橙色),它将更改其他颜色像素(即白色)的颜色。加上边缘不光滑

B)如果用户单击任何颜色/像素,有时代码也会填充整个区域

C)我读到某处使用其他数组来存储区域的形状,因为Alpha通道允许填充区域的边缘与未填充区域平滑融合。 我不知道该怎么实现。

public void floodFillAll(){
    if (queueLinearFloodFiller != null){
        queueLinearFloodFiller.useImage(photoSourceBitmap.copy(Bitmap.Config.ARGB_8888, true));
        queueLinearFloodFiller.setTolerance(tolerance * 255 / 100);
        for (int i=0;i < pointsFF.size(); i++) {
            int tempColor=Color.argb(opacity * 255 / 100, Color.red(fillColorsFF.get(i)), Color.green(fillColorsFF.get(i)), Color.blue(fillColorsFF.get(i)));
            queueLinearFloodFiller.setTargetColor(targetColorsFF.get(i));
            queueLinearFloodFiller.setFillColor(tempColor);
            queueLinearFloodFiller.floodFill(pointsFF.get(i).x, pointsFF.get(i).y);
        }
        floodFillIV.setImageBitmap(queueLinearFloodFiller.getImage());
    }
}

0 个答案:

没有答案