感谢@TravisF的发布,我实现了最后一个解决方案,以使图像始终具有相同的高度,宽度和位置(中心)。
double newMeasure = (userImage.getImage().getWidth() < userImage.getImage().getHeight()) ? userImage.getImage().getWidth() : userImage.getImage().getHeight();double x = (userImage.getImage().getWidth() - newMeasure) / 2;double y = (userImage.getImage().getHeight() - newMeasure) / 2;Rectangle2D rect = new Rectangle2D(x, y, newMeasure, newMeasure);userImage.setViewport(rect);userImage.setFitWidth(150);userImage.setFitHeight(150);userImage.setSmooth(true);



