docs: private BufferedImage scaleBuffered( BufferedImage input ) {
  		int m = Math.max(input.getWidth(),input.getHeight());
  		if( m <= controls.maxImageSize )
  			return input;
  		else {
  			double scale = controls.maxImageSize/(double)m;
  			int w = (int)(scale*input.getWidth()+0.5);
  			int h = (int)(scale*input.getHeight()+0.5);
  
  			// Use BoofCV to down sample since Graphics2D introduced too many aliasing artifacts
  			BufferedImage output = new BufferedImage(w,h,input.getType());
  			Planar<GrayU8> a = new Planar<>(GrayU8.class,input.getWidth(),input.getHeight(),3);
  			Planar<GrayU8> b = new Planar<>(GrayU8.class,w,h,3);
  			ConvertBufferedImage.convertFrom(input,a,true);
  			AverageDownSampleOps.down(a,b);
  			ConvertBufferedImage.convertTo(b,output,true);
  			return output;
  		}
  	}