我已经通过使用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());
}
}