Заливка области цветом - 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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5