1
我们使用vlcj来捕获摄像头视频并将其显示在用户屏幕上。我们逐帧捕捉它,一幅1280x720的图像,大约30fps。JavaFX - 将rgb数组作为图像进行绘制
我们的应用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()
)是非常昂贵的。
问题:怎样才能创建一个JavaFX Image
,可以设置为ImageView
的基础上,RGB int[]
?是否有更好的(如“更快”)显示它?