我正在通过保留图像的纵横比在ImageView中显示图像。 每当用户单击时,我都想选择像素的颜色。
这是我现在正在做的事情:
@FXML private ImageView chosenImage;
Color color = chosenImage.getImage().getPixelReader().getColor((int) mouseEvent.getX(), (int) mouseEvent.getY());
这是ImageView的FXML代码:
<ImageView fx:id="chosenImage" fitHeight="380.0" fitWidth="252.0" onMouseClicked="#onImageClicked" pickOnBounds="true" preserveRatio="true" smooth="false" AnchorPane.bottomAnchor="8.0" AnchorPane.leftAnchor="8.0" AnchorPane.rightAnchor="294.0" AnchorPane.topAnchor="8.0" />
这确实有一些价值,但并不准确。鼠标事件的X和Y值是相对于ImageView而不是其自身的图像。 我想以某种方式获取点击区域的像素值。
如果有人知道解决方案,请提供帮助。谢谢。