private void doZoom(Point center, float zoomFactor) {
		if (image == null) {
			label.setIcon(null);
			imageScroller.getViewport().setViewPosition(new Point(0, 0));
		}
		else {

			ImageIcon icon = new ImageIcon(image);

			int width = icon.getIconWidth();
			int height = icon.getIconHeight();

			Image scaled = image.getScaledInstance((int) (width * zoomFactor),
				(int) (height * zoomFactor), Image.SCALE_FAST);

			label.setIcon(new ImageIcon(scaled));

			Point pos = imageScroller.getViewport().getViewPosition();

			int newX = (int) (center.x * (zoomFactor - 1.0f) + zoomFactor * pos.x);
			int newY = (int) (center.y * (zoomFactor - 1.0f) + zoomFactor * pos.y);

			imageScroller.getViewport().setViewPosition(new Point(newX, newY));
		}

		imageScroller.revalidate();
		imageScroller.repaint();

	}
Shrink the image about the given point
@param center location to shrink the image around
Ghidra/Framework/Docking/src/main/java/docking/widgets/imagepanel/ImagePanel.java