JavaFX - 将 rgb 数组绘制为图像



我们使用vlcj捕获网络摄像头视频并将其显示在用户屏幕上。我们一帧一帧地捕捉它,一张 1280x720 的图像,大约 30fps。

我们的应用程序 UI 完全是 JavaFX,我们在显示所述帧时遇到问题。

使用 Swing,我们会做如下的事情:

BufferedImage image; //create compatible image
public void onDisplay(int[] rgbBuffer){
      image.setRGB(0,0,width, height, rgbBuffer, 0, width);
      myJPane.repaint();  
}

但是JavaFX的Image类没有提供这样的方法,并且创建一个BufferedImage只是为了将其转换为JavaFX Image(通过使用Image.impl_fromPlatformImage())是非常昂贵的。

问题:如何创建一个基于RGB int[]的JavaFX Image,它可以设置为ImageView?有没有更好(如"更快")的方式来显示它?

此功能还不是 JavaFX 平台的一部分 - 现在我认为您必须使用当前使用的 BufferedImage 方法。

您可以跟踪功能图像操作请求。 任何人都可以注册一个jira帐户,为问题投票/添加评论/详细说明用例/等,或者在JavaFX开发邮件列表中为设计提供输入。

最新更新