public static void BitFilter(BufferedWrapper bw, int type)
  {
    BufferedImage temp = bw.Clone();
    int w_Squares, h_Squares, s;
    Color c;

    switch (type)
    {
      //============================================================================
      //====                          16-Bit                                    ====
      //============================================================================
      case SixteenBit:
        int pixels = temp.getWidth() * temp.getHeight();

        if (pixels < 1000000)
        {
          s = 4;
        }
        else
        {
          s = 8;
        }

        w_Squares = temp.getWidth() / s;
        h_Squares = temp.getHeight() / s;

        for (int i = 0; i < w_Squares; i++)
        {
          for (int j = 0; j < h_Squares; j++)
          {
            c = GetColor(temp, i, j, s);
            if (c.getRGB() == Color.BLACK.getRGB())
            {
              continue;
            }

            for (int k = 0; k < s; k++)
            {
              for (int m = 0; m < s; m++)
              {
                temp.setRGB((i * s) + k, (j * s) + m, c.getRGB());
              }
            }
          }
        }

        bw.img = temp;
        break;

      //============================================================================
      //====                          8-Bit                                     ====
      //============================================================================
      case EightBit:
        //:This will not be implemented, all things become indistinguishable
        break;
    }
  }