我在JavaFx中有Image数组。我想从这些图像创建剪辑视频(动画),包括声音文件。 我怎样才能做到这一点?
注意:我想在流程结束时获取视频文件(avi,mp4 ...)。
这是我的阵列:
Image[] frames
我尝试使用" keyFrame"上课...但没有成功:
ImageView destImageView = new ImageView();
Group group;
group = new Group();
group.setTranslateX(300);
group.setTranslateY(450);
Image[] frames = m.getFrames();
KeyFrame[] kf = new KeyFrame[frames.length];
for(int i=0;i<frames.length;i++){
kf[0] =new KeyFrame(new Duration(0), new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// destImageView.setImage();
// group.getChildren().setAll(destImageView);
}
});
}
答案 0 :(得分:0)
您可以使用
javax.imageio.ImageIO.write(javafx.embed.swing.SwingFXUtils.fromFXImage(frame, null), "png", new File(directory, fileName));
将每个图像保存为png文件。
确保给帧顺序编号的文件名,例如img0000.png,img0001.png等..
然后使用ImageJ /斐济(https://imagej.net/Fiji/Downloads) 导入图像序列并另存为avi文件。或者,由于ImageJ是开源的并且用Java编写,因此您可以直接导入并使用ImageJ类
ij.plugin.filter.AVI_Writer
然后,您可以使用VLC播放器将其转换为mp4或其他格式。