class ImgscalrImageManipulator extends AbstractImageManipulator {

	protected BufferedImage cropAndResize(BufferedImage image, ImageManipulationParameters parameters) {
		CropMode cropMode = parameters.getCropMode();
		boolean omitResize = false;
		if (cropMode != null) {
			switch (cropMode) {
				case RECT:
					image = crop(image, parameters.getRect());
					break;
				case FOCALPOINT:
					image = focalPointModifier.apply(image, parameters);
					// We don't need to resize the image again. The dimensions already match up with the target dimension
					omitResize = true;
					break;
			}
		}

		if (!omitResize) {
			image = resizeIfRequested(image, parameters);
		}

		return image;
	}

	public  ImgscalrImageManipulator(Vertx vertx, MeshOptions options, BootstrapInitializer boot);
	  ImgscalrImageManipulator(Vertx vertx, ImageManipulatorOptions options, BootstrapInitializer boot);

}