导航:首页 > 文件教程 > java将图像文件压缩为avi文件

java将图像文件压缩为avi文件

发布时间:2023-05-08 20:38:10

1. java 压缩和序列化

压缩和序列化主要用在数据的存储和传输上,二者都是由IO流相关知识实现,这里统一介绍下。

全部章节传送门:

Java I/O类支持读写压缩格式的数据流,你可以用他们对其他的I/O流进行封装,以提供压缩功能。

GZIP接口比较简单,适合对单个数据流进行压缩,在Linux系统中使用较多。

ZIP格式可以压缩多个文件,而且可以和压缩工具进行协作,是经常使用的压缩方法。

JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。

JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,我们可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。

一个WAR文件就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。下面我们将第2章的Web应用程序打包成WAR文件,然后发布

要注意的是,虽然WAR文件和JAR文件的文件格式是一样的,并且都是使用jar命令来创建,但就其应用来说,WAR文件和JAR文件是有根本区别的。JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。

在命令行输入jar即可查看jar命令的使用方法。

把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。

对象的序列化主要有两种用途:

java.io.ObjectOutputStream代表对象输出流,它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。

java.io.ObjectInputStream代表对象输入流,它的readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。

只有实现了Serializable的对象才能被序列化。对象序列化包括如下步骤:

对象反序列化的步骤如下:

创建一个可以可以序列化的对象。

然后进行序列化和反序列化测试。

s​e​r​i​a​l​V​e​r​s​i​o​n​U​I​D​:​ ​字​面​意​思​上​是​序​列​化​的​版​本​号​,凡是实现Serializable接口的类都有一个表示序列化版本标识符的静态变量。

JAVA序列化的机制是通过判断类的serialVersionUID来验证的版本一致的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID于本地相应实体类的serialVersionUID进行比较。如果相同说明是一致的,可以进行反序列化,否则会出现反序列化版本一致的异常,即是InvalidCastException。

为了提高serialVersionUID的独立性和确定性,强烈建议在一个可序列化类中显示的定义serialVersionUID,为它赋予明确的值。

控制序列化字段还可以使用Externalizable接口替代Serializable借口。此时需要定义一个默认构造器,否则将为得到一个异常(java.io.InvalidClassException: Person; Person; no valid constructor);还需要定义两个方法(writeExternal()和readExternal())来控制要序列化的字段。

如下为将Person类修改为使用Externalizable接口。

transient修饰符仅适用于变量,不适用于方法和类。在序列化时,如果我们不想序列化特定变量以满足安全约束,那么我们应该将该变量声明为transient。执行序列化时,JVM会忽略transient变量的原始值并将默认值(引用类型就是null,数字就是0)保存到文件中。因此,transient意味着不要序列化。

静态变量不是对象状态的一部分,因此它不参与序列化。所以将静态变量声明为transient变量是没有用处的。

2. java 问题 如何将ppt文件转为视频格式文件,最好是非工具类。

一是用office 2010,它可以直接将PPT转换成AVI。(不知道你的office是不是2010)

二是用屏幕录像软件,把PPT录制成视频。 如屏幕录像专家、玩家宝宝等。

三是用转换软件:狸窝转换器,把PPT转换成视频格式。 但它需要注册成VIP会员(也就是付费)后,才可以使用。

其它转换PPT的软件,真的是相当的少!(因为office2010已具备这个功能了,所以,没有再开发这个软件的了)

3. java中怎样将视频文件转换成二进制文件再转换回视频文件求具体代码

其实x.avi本身也是二进制文件,你只需要按照二进制文件读取方式读取就可以了,所以专不理解你这里属的x.dat又是什么样的?或者是说轮换成文本文件?如果这样的话你将x.avi一个字符一个字符地读取然后用16进制保存到x.dat中即可。
再转换为y.avi时同理,读取x.dat中的两个文本字符,转换成byte再写入y.avi即可。

4. AVI格式的文件能否压缩如果能,用什么方法谢谢!!!

用视频转换软件可以了,推荐你一个很好用的,total
video
converter,avi格式是未经压缩的文件,就像声音文件里的wav格式,图片里的bmp格式,压缩成rm或rmvb容量会小很多很多,因为这是一种流媒体格式目前主要用于网络点播,目的就是要减小数据量,而质量还不错

5. 请问怎么能够通过JAVA将PPT转换为SWF文件

一款可以把Flash动画转换成VCD的软件。
将Flash动画刻录成VCD
软件名片:SWF2Video Pro V1.0.1.2
下载地址:
特色功能:可以将Flash文件(swf)转换为AVI格式,支持对音频,视频的设置,包括视频压缩。SWF2Video Pro新增对用Flash MX制作的SWF格式文件的支持;并支持批量转换;可以将SWF文件输出为GIF、PNG、TGA格式的图像序列
软件缺憾:设置较为简单,简单转换尚可;专业应用功能略显不足
诙谐、幽默而又小巧的Flas动画是互联网上最为流行的动画形式,并且有许多免费资源供动漫爱好者下载。遗憾的是,现在电脑网络的普及率问题,许多人还无法直接欣赏到这些可爱的小动画,而电视和VCD机却已相当普及,如果我们能把Flash动画刻录成VCD,就可以让更多的人通过不同的途径享受到电脑网络给人们生活带来的乐趣。SWF2Video Pro是一个非常方便的将Flash转换成AVI文件的软件,操作简单,效果优秀。在各大网站的下载排行榜上都有很好的成绩。下面让我们来体会一下吧!
操作步骤:
把Flash动画刻录成VCD,需要先把下载的Flash动画格式转换成AVI格式,然后通过视频编辑软件进行简单的编辑,转换成VCD的MPGE-1格式,再刻录成VCD光盘。
Step1:将SWF格式的Flash动画转换成AVI文件
运行Swf2Video Pro,点击菜单栏的“打开”,导入一个swf格式的Flash文件。点击“控制/搜索模式”,找到并记住真正需要开始转换的“当前帧”和“结束帧”,便于删去Flash动画开头的“load……”等不需的画面。
点击“文件/创建AVI”,确定AVI文件的名称和路径后,进入“AVI输出选项”窗口,对AVI文件进行一些设置,如图2所示。持续时间:填入通过“搜索模式”确定的“当前帧”和“结束帧”,掐头去尾,控制转换的范围,只选最精彩的;尺寸:取消“使用原始文档大小”,填入352和288,并保留“保持纵横比”,否则有可能使画面变形;视频:选用“未压缩”,以保证AVI文件的质量;也可通过点击“选择”按钮打开“视频压缩”窗口,在“压缩程序”中选择一种压缩方法,如“MicrosoftVideo 1”,这样转换后的AVI文件会小很多;音频:如选用Flash动画本身的声音,则需将“记录用音量”调高,以保证转换后的音量,也可选择音频的品质,如“44100HZ,16位,立体声”、“11025HZ,8位,立体声”等。设置完成后,按“确定”就开始转换,先转换音频再转换视频。
Step2:用Nero刻录软件将AVI文件刻录成VCD
对转换成AVI格式的Flash动画,我们可以用视频编辑软件,如“会声会影”、“VideoPack 5”、甚至是“Premiere”等进行编辑,添加标题、字幕、过渡等效果,这样可以使VCD看上去更加精彩、更加专业。如果我们不需要编辑,就可以直接利用Nero刻录软件将AVI文件刻录成VCD,非常方便。运行“Nero Express”,选择“视频/图片”,再选择“Video CD”,进入“我的视频CD(VCD)”窗口,点击“添加”,选择并添加需要刻录的AVI文件,然后进入菜单编辑窗口,根据需要进行菜单编排、设定背景和文字按钮,最后按“刻录”就行了。
注意:有时我们下载的Flash动画是.exe格式的,这种格式实际上是内置了Flash播放程序,对这种Flash动画,我们可以用ExeToSwf V1.0将其转换为.swf格式。ExeToSwf是一款免费绿色软件,可在下载,解压后直接运行,在“SourceFile”框中填入要转换的exe文件路径和名称,点击“Convert”按钮即可很快将exe格式的Flash动画转换成swf格式的Flash动画。

PowerPoint to Flash v1.6.8

PowerPointtoFlash是第一个能够将PowerPoint的*.ppt档转换为Flash的*.swf文件的软件,它支持大量转档,可一次将多个演示文稿档案转换成目前最受欢迎的Flash格式,方便发布于网页,因为Flash只要浏览器就可以开启了,而*.ppt文件需要安装PowerPoint或检视程序。

Name:crsky Code:2883-432A-809A-669D-DBF6-B3BB-C6FC-4E6D
另外,虚机团上产品团购,超级便宜

6. java 如何将多张JPG图片合成视频文件,比如:avi格式 或 mpg格式.

之前有做过图片合成视频的功能,大概代码就是这样,你可以看一下
/**
* 图片合成视频
* @param mp4SavePath 视频保存路径
* @param imageDir 图片地址
* @param rate 这个可以理解成视频每秒播放图片的数量
*/
public static boolean jpgToMp4(String mp4SavePath, String imageDir, double rate) {
FFmpegFrameRecorder recorder = null;
boolean flag = true;
try {
File[] files = FileUtils.fileSort(imageDir);
int [] widthArray = new int[files.length];
int [] heightArray = new int[files.length];

/**
* 获取合成视频图片的最大宽高,避免图片比例不一致最终合成效果差
*/
for (int i = 0; i < files.length; i++) {
BufferedImage bufferedImage = ImageIO.read(files[i]);
widthArray[i] = bufferedImage.getWidth();
heightArray[i] = bufferedImage.getHeight();
}

/**
* 这个方法主要是防止图片比例达不到视频合成比例的要求,如果达不到下面条件视频则会无法播放
* 图片宽:必须要被32整除
* 图片高:必须要被2整除
*/
int [] maxWH = getImgMaxWH(widthArray,heightArray);
recorder = new FFmpegFrameRecorder(mp4SavePath,maxWH[0],maxWH[1]);
recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
/**
* 视频质量:目前测试出来的是25-30最清晰,视频质量范围好像是0-40,具体可以自己慢慢测
*/
recorder.setVideoQuality(25);
recorder.setFormat("mp4");
recorder.setFrameRate(rate > 0 ? rate : 1);
recorder.setPixelFormat(0);
recorder.start();

OpenCVFrameConverter.ToIplImage conveter = new OpenCVFrameConverter.ToIplImage();

/**
* 合成视频
*/
for(int i = 0; i < files.length; i++ ){
opencv_core.IplImage image = cvLoadImage(files[i].getPath());
recorder.record(conveter.convert(image));
opencv_core.cvReleaseImage(image);
}
logger.info("合成成功");
} catch(Exception e) {
e.printStackTrace();
flag = false;
logger.error("合成失败");
} finally {
try {
if (recorder != null){
recorder.stop();
recorder.release();
}
} catch (FrameRecorder.Exception e) {
e.printStackTrace();
}
}
return flag;
}

阅读全文

与java将图像文件压缩为avi文件相关的资料

热点内容
模拟人生3破解版安卓中文版下载地址 浏览:946
win10删除c盘文件会删掉系统吗 浏览:785
qq的独立密码怎么取消 浏览:289
后台的商品数据在哪里看 浏览:795
不用网络加载的单机游戏有哪些 浏览:608
数据线插头怎么接头 浏览:577
网络加载视频失败是怎么回事 浏览:805
传奇账号在哪个文件夹里 浏览:346
百度app在哪里安装 浏览:587
如何设置路由器网络不断网 浏览:471
传到qq群里的文件怎么删除 浏览:861
索尼安卓71更新日志 浏览:234
怎么找手机里的垃圾app 浏览:540
2015蓝桥杯代码填空 浏览:698
安卓数据库dbexecSQL 浏览:227
doc重命名文件格式 浏览:728
getscreen截图工具下载 浏览:719
共识数据是什么时候开始的 浏览:96
数码管显示电压程序 浏览:479
数据库文件有哪个 浏览:543

友情链接