Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ImageView上的鼠标单击事件上获取RGB像素值_Java_Canvas_Javafx_Imageview_Pixel - Fatal编程技术网

Java 在ImageView上的鼠标单击事件上获取RGB像素值

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:

我通过保留图像的纵横比在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有关,而不是与它自身的图像有关。 我想以某种方式得到点击区域的像素值


如果有人知道解决方案,请帮助。谢谢。

所以您想在
图像视图中获得一个像素的颜色。当用户用光标点击它时。当我测试时,结果非常准确。有多个属性会影响如何从
图像视图
坐标计算图像坐标:
视口
保留Aspectratio
fitHeight
fitWidth
。如果设置了后2个,这可能会导致问题,因为可能涉及平滑。@fabian我已经为这个imageview问题添加了fxml代码。你能看一看,让我知道我错在哪里吗?@fabian感谢你指出fitHeight和fitWidth,我刚刚从fxml中删除了这两个属性,代码现在运行得非常准确。你可以发布你的答案,然后我会把它标记为正确答案:)再次感谢。