Java JimToMov(图片转视频)

简介: 1. JimToMov 依赖于Jmf框架图1.png2. 使用package com.mazaiting;import java.io.

1. JimToMov 依赖于Jmf框架

img_aafd2686b090994a957d68efa2b4ed29.png
图1.png

2. 使用

package com.mazaiting;

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\\Administrator\\Desktop\\images").listFiles();
        
        for (int i = 0; i < listFiles.length; i++) {
            fileArray.add(listFiles[i].getAbsolutePath());
        }
        new FilesToMov(fileArray, MovieInfoProvider.TYPE_QUICKTIME_JPEG, "Test.mov");
    }
    
    /**
     * 图片转视频
     * @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(1);
        // 设置帧数--一张图片一帧
        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;
    }
}

3. 代码及工具包下载

目录
相关文章
|
2月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
87 4
|
2月前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
65 2
|
2月前
|
算法 Java Linux
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
这篇文章介绍了如何使用Java的Graphics2D类在图片上合成另一个照片,并将照片切割成圆形头像的方法。
51 1
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
|
2月前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
131 1
|
2月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
22 1
|
2月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
93 1
|
2月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
134 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
3月前
|
Java
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
这篇文章介绍了Java中FileInputStream和FileOutputStream的使用,包括如何读取和写入txt文件以及如何拷贝图片文件。
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
|
2月前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
46 0
|
2月前
|
算法 Java Linux
java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解
这篇文章介绍了如何在Java中使用Graphics2D在图片上绘制文字,并实现自动换行的功能。
134 0