title: How can I process BufferedImage faster
body: <p>I'm making a basic image editor to improve my image process skills. I have 12 filters(for now). 
  <a href="https://i.stack.imgur.com/fWhV3.png" rel="nofollow noreferrer">All filters have a clickable JLabel that has image</a>
  I update images of all of them when all filters apply with this function:</p>
  
  <pre><code>public static void buttonImagesUpdater(){
      for(int i = 0; i &lt; effects.size(); i++){
          effects.get(i).getButton().setImage(new ImageIcon(effects.get(i).process(image)));
      }
  }
  </code></pre>
  
  <p>All filters have a process function like that:</p>
  
  <pre><code>public BufferedImage process(BufferedImage base) {
      BufferedImage product = new BufferedImage(base.getWidth(), base.getHeight(), base.getType());
      for(int indisY = 0; indisY &lt; base.getHeight(); indisY++){
          for(int indisX = 0; indisX &lt; base.getWidth(); indisX++){
              Color currentColor = new Color(base.getRGB(indisX, indisY));
              int greyTone = 0;
              greyTone = (int) (currentColor.getRed()*0.315) +
                      (int) (currentColor.getGreen()*0.215) 
                      + (int) (currentColor.getBlue()*0.111);
              product.setRGB(indisX, indisY, new Color(greyTone,greyTone,greyTone).getRGB());
  
          }
      }
      return product;
  }
  </code></pre>
  
  <p>Program works so slowly. When I click an effect's button it done 45 second later when I use 5000x3000 image. How can I fix this performance problem?</p>