private void lossyFilterNear(int q) {
    for (int i = 0; i < biWidth; i ++) {
      for (int i2 = 0; i2 < biHeight; i2 ++) {
        for (int i3 = 0; i3 < 3; i3++) {
          image.setPoint(i, i2, i3);
          int val = image.getCurVal();
          int nv = filter(i, i2, i3);
          if (nv < 0) { nv += 256; }
          if (val < 0) { nv += 256; }
          if (val < nv) {
            if (nv - val > q) {
              val += q;
            } else {
              val = nv;
            }
          }
          if (val > nv) {
            if (val - nv > q) {
              val -= q;
            } else {
              val = nv;
            }
          }
          image.setVal(i, i2, i3, val);
        }
      }
    }
  }