我们正在使用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创建一个Image
可以设置为 an的 JavaFX ?有没有更好(如“更快”)的方式来显示它?ImageView
int[]