1. 程式人生 > >jim2mov-javacv-圖片轉視訊

jim2mov-javacv-圖片轉視訊

java圖形處理

注 jim2mov依賴於jmf,要使用jim2mov要先新增jmf

jpg圖片轉視訊使用案咧(只支援jpg格式)

/** 
 * 	此程式碼轉自他人部落格, 自己加了點註釋, 自己使用過, 可以使用
 */
import java.io.File;
import java.util.ArrayList;
 
import org.jim2mov.core.DefaultMovieInfoProvider;
import org.jim2mov.core.FrameSavedListener;
import org.jim2mov.core.ImageProvider;
import
org.jim2mov.core.Jim2Mov; import org.jim2mov.core.MovieInfoProvider; import org.jim2mov.core.MovieSaveException; import org.jim2mov.utils.MovieUtils; public class FilesToMov implements ImageProvider, FrameSavedListener{ // 檔案陣列 private ArrayList<String> fileArray = null; // 檔案型別 private
int type = MovieInfoProvider.TYPE_QUICKTIME_JPEG; // 主函式 public static void main(String[] args) throws MovieSaveException { ArrayList<String> fileArray = new ArrayList<>(); // 圖片路徑 File[] listFiles = new File("C:\\Users\\yiyang\\Pictures\\test").listFiles(); for
(int i = 0; i < listFiles.length; i++) { fileArray.add(listFiles[i].getAbsolutePath()); } new FilesToMov(fileArray, MovieInfoProvider.TYPE_QUICKTIME_JPEG, "t.avi"); } /** * 圖片轉視訊 * @param filePaths 檔案路徑陣列 * @param type 格式 * @param path 檔名 * @throws MovieSaveException */ public FilesToMov(ArrayList<String> fileArray, int type, String path) throws MovieSaveException { this.fileArray = fileArray; this.type = type; DefaultMovieInfoProvider dmip = new DefaultMovieInfoProvider(path); // 設定幀頻率 dmip.setFPS(7); // 設定幀數--一張圖片一幀 dmip.setNumberOfFrames(fileArray.size()); // 設定視訊高度 dmip.setMWidth(320); // 設定視訊寬度 dmip.setMHeight(240); new Jim2Mov(this, dmip, this).saveMovie(this.type);; } // 每一張圖片都會調一次此方法 @Override public void frameSaved(int frameNumber) { System.out.println("Saved frame: " + frameNumber); } @Override public byte[] getImage(int frame) { try { return MovieUtils.convertImageToJPEG(new File(fileArray.get(frame)), 1.0f); } catch (Exception e) { e.printStackTrace(); } return null; } }