Java 在ImageView上的鼠标单击事件上获取RGB像素值
我通过保留图像的纵横比在ImageView中显示图像。 我想在用户单击像素时选择像素的颜色 以下是我现在正在做的事情:Java 在ImageView上的鼠标单击事件上获取RGB像素值,java,canvas,javafx,imageview,pixel,Java,Canvas,Javafx,Imageview,Pixel,我通过保留图像的纵横比在ImageView中显示图像。 我想在用户单击像素时选择像素的颜色 以下是我现在正在做的事情: @FXML private ImageView chosenImage; Color color = chosenImage.getImage().getPixelReader().getColor((int) mouseEvent.getX(), (int) mouseEvent.getY()); 以下是ImageView的FXML代码: <ImageView fx:
@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有关,而不是与它自身的图像有关。
我想以某种方式得到点击区域的像素值
如果有人知道解决方案,请帮助。谢谢。所以您想在
图像视图中获得一个像素的颜色。当用户用光标点击它时。当我测试时,结果非常准确。有多个属性会影响如何从图像视图
坐标计算图像坐标:视口
,保留Aspectratio
,fitHeight
和fitWidth
。如果设置了后2个,这可能会导致问题,因为可能涉及平滑。@fabian我已经为这个imageview问题添加了fxml代码。你能看一看,让我知道我错在哪里吗?@fabian感谢你指出fitHeight和fitWidth,我刚刚从fxml中删除了这两个属性,代码现在运行得非常准确。你可以发布你的答案,然后我会把它标记为正确答案:)再次感谢。