private Rectangle getImageClipBounds() {
		Coords startCoords = panelToImageCoords(new Point(0, 0));
		Coords endCoords = panelToImageCoords(new Point(getWidth() - 1, getHeight() - 1));
		int panelX1 = startCoords.getIntX();
		int panelY1 = startCoords.getIntY();
		int panelX2 = endCoords.getIntX();
		int panelY2 = endCoords.getIntY();
		//No intersection?
		if (panelX1 >= image.getWidth() || panelX2 < 0 || panelY1 >= image.getHeight() || panelY2 < 0) {
			return null;
		}
		
		int x1 = (panelX1 < 0) ? 0 : panelX1;
		int y1 = (panelY1 < 0) ? 0 : panelY1;
		int x2 = (panelX2 >= image.getWidth()) ? image.getWidth() - 1 : panelX2;
		int y2 = (panelY2 >= image.getHeight()) ? image.getHeight() - 1 : panelY2;
		return new Rectangle(x1, y1, x2 - x1 + 1, y2 - y1 + 1);
	}