Заливка области цветом - Java
Формулировка задачи:
Создаю графический редактор, необходима функция заливки области цветом.
Написал вот эту функцию согласно псевдокоду из Wikipedia, но она не работает. Подскажите пожалуйста в чем проблема.
public void FloodFill (BufferedImage ima, Point node, int fillcolor, int oldcolor){ Queue <Point> Q = new LinkedList<Point> (); int x = node.x; int y = node.y; if ( ima.getRGB(x,y) != oldcolor){ return; } Q.add(node); while(Q.isEmpty()==false){ Point n; n=Q.element(); int xx=n.x; int yy=n.y; if(ima.getRGB(xx, yy)==oldcolor){ ima.setRGB(xx, yy,fillcolor);} Q.remove(); if(ima.getRGB(xx-1, yy)==oldcolor){ ima.setRGB(xx-1, yy,fillcolor); n.setLocation(xx-1, yy); Q.add(n);} if(ima.getRGB(xx+1, yy)==oldcolor){ ima.setRGB(xx+1, yy,fillcolor); n.setLocation(xx+1, yy); Q.add(n);} if(ima.getRGB(xx, yy-1)==oldcolor){ ima.setRGB(xx, yy-1,fillcolor); n.setLocation(xx, yy-1); Q.add(n);} if(ima.getRGB(xx, yy+1)==oldcolor){ ima.setRGB(xx, yy+1,fillcolor); n.setLocation(xx, yy+1); Q.add(n);} } return; }
Решение задачи: «Заливка области цветом»
textual
Листинг программы
Point n =new Point(xPad,yPad) ; MK=maincolor.getRGB(); oldcolor=imag.getRGB(xPad,yPad); FloodFill(imag,n,MK,oldcolor);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д