code: public static BufferedImage crop(BufferedImage src, int width, int height,
  			BufferedImageOp... ops) throws IllegalArgumentException,
  			ImagingOpException {
  		return crop(src, 0, 0, width, height, ops);
  	}
docs: Used to crop the given <code>src</code> image from the top-left corner
  and applying any optional {@link BufferedImageOp}s to the result before
  returning it.
  <p/>
  <strong>TIP</strong>: This operation leaves the original <code>src</code>
  image unmodified. If the caller is done with the <code>src</code> image
  after getting the result of this operation, remember to call
  {@link BufferedImage#flush()} on the <code>src</code> to free up native
  resources and make it easier for the GC to collect the unused image.
  
  @param src
  The image to crop.
  @param width
  The width of the bounding cropping box.
  @param height
  The height of the bounding cropping box.
  @param ops
  <code>0</code> or more ops to apply to the image. If
  <code>null</code> or empty then <code>src</code> is return
  unmodified.
  
  @return a new {@link BufferedImage} representing the cropped region of
  the <code>src</code> image with any optional operations applied
  to it.
  
  @throws IllegalArgumentException
  if <code>src</code> is <code>null</code>.
  @throws IllegalArgumentException
  if any coordinates of the bounding crop box is invalid within
  the bounds of the <code>src</code> image (e.g. negative or
  too big).
  @throws ImagingOpException
  if one of the given {@link BufferedImageOp}s fails to apply.
  These exceptions bubble up from the inside of most of the
  {@link BufferedImageOp} implementations and are explicitly
  defined on the imgscalr API to make it easier for callers to
  catch the exception (if they are passing along optional ops
  to be applied). imgscalr takes detailed steps to avoid the
  most common pitfalls that will cause {@link BufferedImageOp}s
  to fail, even when using straight forward JDK-image
  operations.