2015-04-15 143 views
0

我在JavaFx中有圖像數組。我想從這些圖像中創建一個剪輯視頻(動畫),包括聲音文件。 我該如何實現這一目標?JavaFx - 從圖像數組創建動畫

注意:我想在過程結束時獲取視頻文件(avi,mp4 ...)。

這是我的數組:

Image[] frames 

我嘗試使用 「關鍵幀」 類......但沒有成功:

 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

這個問題「太廣泛了」,除非用特定的方案詢問並提供了可靠的代碼,否則很可能會被關閉。 – ItachiUchiha

+1

您可以創建一個[精靈動畫](http://blog.netopyr.com/2012/03/09/creating-a-sprite-animation-with-javafx/)或[貓重擊動畫](http:/ /stackoverflow.com/questions/23440980/how-show-specific-part-of-an-image-in-javafx),但這真的不像製作一個AVI或MP4,所以我懷疑這樣做不會幫助你實現您的最終目標 - JavaFX核心庫中沒有內置的avi/mp4導出功能。 – jewelsea

+0

拉姆茲的聲音怎麼樣? (我在問你)你的問題是什麼? – jewelsea

回答

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