我有一个来自主监视器的图像截图,我想将其添加到Java FX ImageView中,如下所示:
@FXML
protected ImageView screenshot() throws AWTException, IOException {
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage capture = new Robot().createScreenCapture(screenRect);
ImageView imageView = new ImageView();
Image image = capture; //Error
imageView.setImage(image);
return imageView;
}
我试图将BufferedImage捕获设置为javafx。场景形象Image Image但是类型不兼容,我也无法转换它。我该如何纠正?
通常,最佳选择是图像图像=SwingFXUtils。toFXImage(捕捉,空) 在java9或更大版本中。。。。但是在javafx中的性能问题上,也在低性能的设备中,您可以使用这种在java8中测试过的技术
private static Image convertToFxImage(BufferedImage image) {
WritableImage wr = null;
if (image != null) {
wr = new WritableImage(image.getWidth(), image.getHeight());
PixelWriter pw = wr.getPixelWriter();
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
pw.setArgb(x, y, image.getRGB(x, y));
}
}
}
return new ImageView(wr).getImage();
}
您可以使用
Image image = SwingFXUtils.toFXImage(capture, null);
问题内容: 我有一个从主监视器截取的图像,因此我想将其添加到Java FX : 我正在尝试将设置为,但是类型不兼容,也无法强制转换。我该如何纠正? 问题答案: 您可以使用
我得到了一个字节数组,存储了一个已经解构的DICOM文件中的16位像素数据。我现在需要做的是以某种方式将像素数据转换/导出为TIFF文件格式。我使用imageio-tiff-3.3.2.jar插件来处理tiff转换/头数据。但是现在我需要将该图像数据数组打包到原始图像维度的BufferedImage中,以便将其导出到TIFF。但是BufferedImage似乎不支持16位图像。有没有办法解决这个问
刚刚开始一个新项目,已经遇到了一些问题。我试图用javafx显示图像,但编译器抱怨提供的位置无效。这是我到目前为止的所有代码(除了一些导入): 如果我将文件路径更改为我在谷歌图像搜索中找到的图像url,它会显示添加在其下方的黑色矩形(只是为了测试一切是否正常),但不会显示图像。但是,在当前配置中,它只是抛出一个错误,表示URL无效或找不到资源。我认为这应该有效的原因是以下示例:https://do
我正在使用JavaFx,我正在寻找一种与AWT BufferedImage等价的工具。我发现我可以使用SwingFXUtils来使用JavaFx的awt BuffereImage,但我不想使用awt。 事实上,我正在寻找一种结构来显示与颜色模型关联的像素表。 有人知道JavaFx的一些等价物吗? 非常感谢。
问题内容: 在StackOverflow上已经存在类似此链接的问题,并且可接受的答案是“广播”: 在我的程序中,我尝试: 不幸的是,我得到运行时错误: sun.awt.image.ToolkitImage无法转换为java.awt.image.BufferedImage 显然,投射不起作用。 问题是:将Image转换为BufferedImage的正确方法是(或存在)什么? 问题答案: 从Java游
问题内容: 我有一个BufferedImage对象,我想将其编码为BMP格式并将其保存到磁盘。 我该怎么做呢? 在它的确定: 问题答案: 使用ImageIO的