【问题标题】:Center crop image in JavaFX [duplicate]JavaFX中的中心裁剪图像[重复]
【发布时间】:2017-12-29 15:55:15
【问题描述】:

我正在熟悉 Javafx,并且直接从盒子里我注意到它缺少 scaletypes,在 Android 中,我们有我们所说的 CenterCrop,当图像更小或更大或尺寸比不等于你的图像视图时,它会缩放图像并根据 imageview 尺寸对其进行裁剪,在 Javafx 中我无法做到这一点,有人知道实现这一点的方法吗?

【问题讨论】:

标签: java css image javafx


【解决方案1】:

您可以使用剪贴蒙版来实现裁剪部分。 每个Node 都有public final void setClip(Node value) 方法,它允许您使用另一个节点作为掩码。

通过将 setClip 与 ImageView 结合使用并结合一些宽度和高度的绑定,您应该能够实现自己的类,该类的行为符合您的描述。

更新: 好的,再次检查后,问题似乎已经被问到了:Center crop image JavaFX

那里提供的代码应该可以解决您的问题。我在这里复制它以便于参考。

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);

【讨论】:

  • 老实说,我是在寻找答案的代码表示,我知道我必须使用节点,但缺少的是实现。
  • 这个方法只裁剪图像并拉伸它直到它适合父级,相反,中心裁剪放大图像并裁剪它以匹配父级
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多