JavaFx - 从Image数组创建动画

时间:2015-04-15 20:44:11

标签: image animation image-processing video javafx

我在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);

                }
            });
        }

1 个答案:

答案 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或其他格式。