我们正在使用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
创建可以设置为ImageView
的JavaFX int[]
?是否有更好的(如#34;更快")显示它的方式?
答案 0 :(得分:2)
此功能尚未成为JavaFX平台的一部分 - 现在我相信您必须使用当前使用的BufferedImage方法。
您可以跟踪功能Image Ops请求。任何人都可以注册jira account并投票支持问题/添加评论/详细用例/等,或者在JavaFX development mailing list上为设计提供输入。