public MinuetoImage crop(int cornerX, int cornerY, int sizeX, int sizeY) {

		/* Resulting MinuetoImage */
		MinuetoImage	destinationImage;
		
		if (cornerX < 0) throw new MinuetoZeroNegativeException("Cannot start crop at X position " + cornerX);
		if (cornerY < 0) throw new MinuetoZeroNegativeException("Cannot start crop at Y position " + cornerY);
		if (sizeX < 0) throw new MinuetoZeroNegativeException("Cannot end crop at X position " + sizeX);
		if (sizeY < 0) throw new MinuetoZeroNegativeException("Cannot end crop at Y position " + sizeY);

		if (cornerX >= this.width) throw new MinuetoOutOfBoundException("Cannot start crop at X position " + cornerX);
		if (cornerY >= this.height) throw new MinuetoOutOfBoundException("Cannot start crop at Y position " + cornerY);
		if ((cornerX+sizeX) > this.width) throw new MinuetoOutOfBoundException("Cannot end crop at X position " + (cornerX+sizeX));
		if ((cornerY+sizeY) > this.height) throw new MinuetoOutOfBoundException("Cannot end crop at Y position " + (cornerY+sizeY));

		destinationImage = new MinuetoImage(sizeX, sizeY);

		destinationImage.graphics2D.drawImage(this.getImage().getSubimage(cornerX, cornerY, sizeX, sizeY),0,0,null);

		return destinationImage;
	}