-
2018-09-12 17:47:41
处理图片压缩的终极版本。附上测试用例。
/** * * 压缩图片,并等比缩小。 * * @author aren * @param data * 输入图片数据的byte[]。 * @param width * 最大输出宽度,但是最后会根据图片本身比例调整。推荐值800。 * @param height * 最大输出高度,但是最后会根据图片本身比例调整。推荐值600。 * @param type * 指定最后存储的图片类型,支持字符串jpg,png,gif,bmp,jpeg。如果为null,则默认输出jpg格式图片。 * @param maxSize * 指定最大输出图片的容量大小。可以为null表示不指定压缩容量大小。不要小于10000,推荐100000。 * @return 输出图片数据的byte[]。 * @throws Exception */ public byte[] zipImageToScaledSize(byte[] data, int width, int height, String type, Integer maxSize) throws Exception { if (data == null) { return null; } if (width <= 0 || height <= 0) { width = 800; height = 600; } // 设定输出格式 String[] supportType = new String[] { "jpg", "png", "bmp", "jpeg", "gif" }; if (type == null || !ArrayUtils.contains(supportType, type)) { type = "jpg"; } int pointedHeight; int pointedWidth; ByteArrayInputStream inputStream = new ByteArrayInputStream(data); BufferedImage bufferedImage = ImageIO.read(inputStream); inputStream.close(); int originalHeight = bufferedImage.getHeight(); int originalWidth = bufferedImage.getWidth(); // 设定等比例压缩。 if ((originalHeight / (double) height) > (originalWidth / (double) width)) { pointedHeight = NumberUtils.min(height, originalHeight); pointedWidth = -1; } else { pointedHeight = -1; pointedWidth = NumberUtils.min(width, originalWidth); } // 压缩图片,此处附上颜色类型BufferedImage.TYPE_INT_RGB。Color.WHITE,可以有效避免png转jpg时图片发红的问题。 Image newImage = bufferedImage.getScaledInstance(pointedWidth, pointedHeight, Image.SCALE_SMOOTH); BufferedImage newBufferedImage = new BufferedImage(newImage.getWidth(null), newImage.getHeight(null), BufferedImage.TYPE_INT_RGB); newBufferedImage.getGraphics().drawImage(newImage, 0, 0,Color.WHITE, null); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ImageIO.write(newBufferedImage, type, byteArrayOutputStream); byteArrayOutputStream.close(); data = byteArrayOutputStream.toByteArray(); if (maxSize != null && data.length > maxSize) { // 设定递归的保险,以免图片质量太差 if (maxSize < 5000 && (data.length > 10 * maxSize)) { maxSize = 5000; } // 递归压缩 double scale = Math.max(Math.pow(maxSize / (double) data.length, 0.5), 0.9); return zipImageToScaledSize(data, (int) (width * scale), (int) (height * scale), type, maxSize); } else { return data; } }
附上测试用例。
@Test public void getformatname() throws Exception { //文件夹遍历图片,文件夹地址自定。 File fileFolder=new File("D:/downloads/testImage"); File[] fileList=fileFolder.listFiles(); for(File file:fileList){ InputStream input = new FileInputStream(file); byte[] data = new byte[(input.available())]; input.read(data); input.close(); String type="bmp"; data = zipImageToScaledSize(data,600, 800, type,100000); OutputStream output = new FileOutputStream("D:/downloads/testResult/"+Math.random()+"."+type); output.write(data); output.close(); } }
更多相关内容 -
jdk1.8压缩文件rar zip java8压缩版
2018-04-24 10:38:05jdk1.8压缩文件rar zip java8压缩版 解压缩配置即可用,如果有搜到我前面发的那个资源请不要下载,下这个,那个有些东西没有配置好 -
7z解压缩java代码+工具
2018-07-26 16:50:39该文件为java版的7z解压缩工具,目前已经支持tar,7z,gz等格式的代码解压缩 -
Java实现.7z格式文件的压缩(打包)与解压缩
2019-07-27 14:20:26Java实现文件压缩与解压缩-----.7z1. 压缩1.1 实现代码1.2 maven依赖 Java中实现.7z的压缩与解压缩 Java中实现.zip的压缩与解压缩 1. 压缩 本代码可以实现文件夹下多个文件的.7z压缩~ 1.1 实现代码 import org....Java实现文件压缩与解压缩-----.7z
Java中实现.7z的压缩与解压缩
Java中实现.zip的压缩与解压缩
其他参考连接
知识点讲解
知识点精讲1. 压缩
本代码可以实现文件夹下多个文件的.7z压缩~
1.1 实现代码
import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry; import org.apache.commons.compress.archivers.sevenz.SevenZOutputFile; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; /** * date: 2019/07/27 * writed by yangtingting */ public class File7z { /** * 7z文件压缩 * * @param inputFile 待压缩文件夹/文件名 * @param outputFile 生成的压缩包名字 */ public static void Compress7z(String inputFile, String outputFile) throws Exception { File input = new File(inputFile); if (!input.exists()) { throw new Exception(input.getPath() + "待压缩文件不存在"); } SevenZOutputFile out = new SevenZOutputFile(new File(outputFile)); compress(out, input, null); out.close(); } /** * @param name 压缩文件名,可以写为null保持默认 */ //递归压缩 public static void compress(SevenZOutputFile out, File input, String name) throws IOException { if (name == null) { name = input.getName(); } SevenZArchiveEntry entry = null; //如果路径为目录(文件夹) if (input.isDirectory()) { //取出文件夹中的文件(或子文件夹) File[] flist = input.listFiles(); if (flist.length == 0)//如果文件夹为空,则只需在目的地.7z文件中写入一个目录进入 { entry = out.createArchiveEntry(input,name + "/"); out.putArchiveEntry(entry); } else//如果文件夹不为空,则递归调用compress,文件夹中的每一个文件(或文件夹)进行压缩 { for (int i = 0; i < flist.length; i++) { compress(out, flist[i], name + "/" + flist[i].getName()); } } } else//如果不是目录(文件夹),即为文件,则先写入目录进入点,之后将文件写入7z文件中 { FileInputStream fos = new FileInputStream(input); BufferedInputStream bis = new BufferedInputStream(fos); entry = out.createArchiveEntry(input, name); out.putArchiveEntry(entry); int len = -1; //将源文件写入到7z文件中 byte[] buf = new byte[1024]; while ((len = bis.read(buf)) != -1) { out.write(buf, 0, len); } bis.close(); fos.close(); out.closeArchiveEntry(); } } public static void main (String[]args){ try { Compress7z("D:\\YTT", "D:\\TestbyYTT.7z"); } catch (Exception e) { e.printStackTrace(); } } }
1.2 maven依赖
<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.9</version> </dependency> <dependency> <groupId>org.tukaani</groupId> <artifactId>xz</artifactId> <version>1.5</version> </dependency> </dependencies>
2. .7z文件的解压
2.1 源代码
import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry; import org.apache.commons.compress.archivers.sevenz.SevenZFile; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; public class Uncompress7z { public static void Uncompress(String inputFile, String destDirPath) throws Exception { /** * zip解压 * @param inputFile 待解压文件名 * @param destDirPath 解压路径 */ File srcFile = new File(inputFile);//获取当前压缩文件 // 判断源文件是否存在 if (!srcFile.exists()) { throw new Exception(srcFile.getPath() + "所指文件不存在"); } //开始解压 SevenZFile zIn = new SevenZFile(srcFile); SevenZArchiveEntry entry = null; File file = null; while ((entry = zIn.getNextEntry()) != null) { if (!entry.isDirectory()) { file = new File(destDirPath, entry.getName()); if (!file.exists()) { new File(file.getParent()).mkdirs();//创建此文件的上级目录 } OutputStream out = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(out); int len = -1; byte[] buf = new byte[1024]; while ((len = zIn.read(buf)) != -1) { bos.write(buf, 0, len); } // 关流顺序,先打开的后关闭 bos.close(); out.close(); } } } public static void main (String[]args){ try { Uncompress("D:\\TestbyYTT.7z", "D:\\YTTnew"); } catch (Exception e) { e.printStackTrace(); } } }
2.2 警告问题解决
idea 警告:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
解决方法: 在pom.xml文件中添加下列代码
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
同时,还需要再maven配置文件settings.xml中加入下列代码。
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties>
-
java下载 7.0 官方版
2021-03-08 07:07:18java7是java应用使用和编程必备的基础组件。java7在用户的java应用程序使用时有十分全面的支持,当电脑中缺失java组件,用户电脑中一些基于java的应用程序就无法正常启动,十分影响日常生活和工作。java7特性介绍...java7是java应用使用和编程必备的基础组件。java7在用户的java应用程序使用时有十分全面的支持,当电脑中缺失java组件,用户电脑中一些基于java的应用程序就无法正常启动,十分影响日常生活和工作。
java7特性介绍
Java编程语言特性
1.二进制形式的字面值表示
2.在数值类型的字面值中使用下划线分隔符联接
3.创建泛型实例时自动类型推断
4.switch-case语句支持字符串类型[2]
5.新增try-with-resources语句[3]
6.单个catch子句同时捕获多种异常类型[4]
7.改进使用带泛型可变参数的方法时的编译器警告和错误提示机制[5]
Swing
1.新增javax.swing.JLayer类,一个灵活而且功能强大的Swing组件修饰器。它使你能够直接利用组件和组件的事件响应而无需修改底层组件。你可以点击查看如何使用JLayer修饰组件。
2.NimbusLook&Feel(L&F)从包com.sun.java.swing移动到标准的API包javax.swing;详细信息请查看javax.swing.plaf.nimbus。尽管它不是默认的L&F,但是现在你可以非常方便地使用它了。你可以查看Java教程中NimbusLookandFeel部分的详细信息,也可以在你的程序中运行三个使用Nimbus的简单方法的代码示例。
3.在以前的版本中,在同一个容器中混合使用重量级的AWT组件和轻量级的Swing组件可能会引发某些问。不过,现在你可以在JavaSE7完美地混合使用它们了。你可以点击这里查看相关文章。
4.JavaSE7支持以指定的透明度或非矩形的方式来显示窗体,你可以点击这里查看Java教程中关于如何创建带有指定透明度和非矩形的窗体的部分内容。
5.类javax.swing.JColorChooser中新增了对以HSV方式来表现RGB色彩模型的支持。HSV和HSL是两种最常见的用于表示RGB色彩模型的表示方式。它们均表示色调、饱和度、亮度三个参数,不过取值形式不同。HSL的三个参数的取值范围均为0-255,HSV的三个参数的取值范围分别为0°-360°、0.0-1.0、0.0-1.0。
JavaIO
1.包java.nio.file以及相关联的包java.nio.file.attribute提供对文件IO以及访问文件系统更全面的支持。JDK7也支持zip压缩格式的文件系统。你可以参考以下资源获得更多信息:
a)你可以点击查看Java教程中关于文件I/O(NIO2.0特性)的部分内容;nio表示非阻塞式的IO(non-blockingI/O)。
b)开发一个自定义的文件系统提供者[6]。
c)zip压缩格式的文件系统提供者[7]。
d)目录%JAVA_HOME%/sample/nio/chatserver/下含有包括java.nio.file包在内的新API的演示示例。
e)目录%JAVA_HOME%/demo/nio/zipfs/下含有NIO2.0网络文件系统的演示示例。
网络
1.类java.net.URLClassLoader新增close方法,该方法可以有效解决如何支持从特定代码库,尤其是jar文件中,加载类或资源的最新实现的问题。详情查看如何关闭URLClassLoader。
安全
1.新增ECDSA/ECDH等基于ECC加密算法的支持,详情查看Java加密体系结构中供应商SunEC提供支持的算法的部分内容。
2.禁用了MD2等一些弱加密算法,JavaSE7提供一种机制,用于在处理证书路径或与TLS交互时拒绝使用指定的加密算法。详情查看Java公共密钥程序员指南中的附录D:禁用指定的加密算法和Java安全套接字扩展中的禁用加密算法。
3.对Java安全套接字扩展(JavaSecureSocketExtension)中的SSL/TLS进行了一系列增强和完善。
并发
1.基于类java.util.concurrent.ForkJoinPool的fork/join框架,作为接口java.util.concurrent.Executor的一个实现,它被用来高效地运行工作线程池中的大量任务。其中还使用了一种名为work-stealing的技术,它可以充分利用多处理器来保证所有的工作线程一直正常工作。详情查看Java教程中的Fork/Join部分。目录%JAVA_HOME%/sample/forkjoin/中包含fork/join的演示示例。
2.新增java.util.concurrent.ThreadLocalRandom类,它消除了使用伪随机数的线程之间的竞争。在多线程并发访问的情况下,使用ThreadLocalRandom比使用Math.random()可以减少并发线程之间的竞争,从而获得更好的性能。例如:
a)intr=ThreadLocalRandom.current().nextInt(4,77);
b)//将返回一个4-77之间的随机整数(不包含77)。
3.新增java.util.concurrent.Phaser类,它是一个新的类似于java.util.concurrent.CyclicBarrier的线程同步障碍辅助工具类(它允许一组线程互相等待,直到到达某个公共屏障点)。
RichInternetApplication(RIA)/部署
Java2D
1.一个新的基于XRender的渲染管道能够提供改进的图形运行性能,以支持现在的基于DirectX11的桌面应用。默认情况下,这个渲染管道并未启用,不过你可以使用命令行设置属性-Dsun.java2d.xrender=true来启用它。
2.现在JDK可以通过诸如GraphicsEnvironment.getAvailableFontFamilyNames等方法来枚举并显示系统中已安装的OpenType/CFF字体了,并且这些字体都可以被方法Font.createFont识别。你可以查看Java教程选择指定的字体。
3.类java.awt.font.TextLayout现在可以支持西藏文字的脚本了。
4.在Windows和Solaris操作系统中,文件fontconfig.properties中静态指定了JDK可以使用的逻辑字体。不过,在多数Linux系统的实现中,并没有保证在特定的语言环境下对特定字体表现的支持。在JavaSE7中,libfontconfig可选择在「未识别」的Linux平台上使用的逻辑字体。更多信息可以查看Fontconfig。
JavaXML
1.JavaSE7现在已经更新JavaAPIforXMLProcessing(JAXP)至1.4.5版本,与以前的版本相比,该版本修复了许多bug,并且做了许多的改进,尤其是在一致性、安全性和性能方面。虽然JAXP仍然处于1.4版本,不过StAX已经升级到了1.2版本。更多信息你可以查看JAXP1.4.5发行说明以及JAXP1.4.5更新日志。
2.JavaSE7更新JavaArchitectureforXMLBinding(JAXB)至2.2.3版本,详情查看2.2以上版本的JAXB更新日志。
3.JavaSE7更新JavaAPIforXMLWebServices(JAX-WS)至2.2.4版本。详情查看2.2以上版本的JAX-WS更新日志。
国际化
1.JavaSE7中添加或改进了对Unicode6.0.0、本地化目录、本地化类文件以及ISO4217货币符号扩展性的支持。
java.lang包
1.JavaSE7修复了以前版本中多线程的自定义类加载器可能出现死锁的问题。
Java虚拟机(JVM)
1.java虚拟机支持非Java语言
2.G1(Garbage-First)垃圾收集器
3.JavaHotSpot虚拟机性能增强
Jdbc4.1
1.支持使用try-with-resources语句进行自动的资源释放,包括连接、语句和结果集
2.支持RowSet1.1
-
jdk1.7.0_17 绿色解压缩版
2013-04-06 12:04:39jdk1.7.0_17 绿色解压缩版 只要指定好环境变量就行。里面有写 -
【java使用ffmpeg进行视频压缩】
2022-03-26 17:23:13在java中使用ffmpeg压缩视频文章目录
前言
java在linux系统中使用ffmpeg对视频进行压缩
提示:以下是本篇文章正文内容,下面案例可供参考
一、下载ffmpeg(此处引用https://www.cnblogs.com/niuben/p/13551013.html)
可以直接从官网上下载linux版本的ffmpeg源码包 ffmpeg-4.1.tar.xz,再ftp上传到linux/usr/local目录
或者在linux终端中 cd /usr/local 目录,输入以下命令下载到 /usr/local 目录wget https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz
新建安装目录
cd /usr/local/ # 切换到 /usr/local 目录 mkdir ffmpeg # 在 usr/local 目录下创建 ffmpeg 目录
解压源码包
tar -xvJf ffmpeg-4.1.tar.xz
编译准备
cd ffmpeg-4.1 # 切换到ffmpeg-4.1目录 yum install gcc # 安装gcc编译器 yum install yasm # 安装yasm编译器
安装设置
./configure --enable-shared --prefix=/usr/local/ffmpeg # --prefix 指定安装目录
如果出现如下错误信息
If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file "config.log" produced by configure as this will help solve the problem.
则需要先安装yasm
步骤(如已安装 则跳过此步骤):
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz #下载源码包 tar zxvf yasm-1.3.0.tar.gz #解压 cd yasm-1.3.0 #进入目录 ./configure #配置 make && make install #编译安装
编译安装
这一步耗费时间较长
make # 编译 make install # 安装
修改文件/etc/ld.so.conf
vim /etc/ld.so.conf # 输入以下内容 include ld.so.conf.d/*.conf /usr/local/ffmpeg/lib/
输入 ldconfig 使修改生效。
查看版本
/usr/local/ffmpeg/ffmpeg-4.1/ffmpeg -version
配置环境变量
# vim /etc/profile
添加环境变量
在最后PATH添加环境变量
#set ffmpeg environment PATH=$PATH:/usr/local/ffmpeg/bin export PATH
然后source一下
source /etc/profile #使配置生效
查看环境变量是否配置成功
ffmpeg -version
二、在java中进行压缩
/** * 压缩视频 * * @param convertFile 待转换的文件路径 * @param targetFile 转换后的目标文件路径 */ private File toCompressFile(String convertFile, String targetFile) { Runtime runtime = Runtime.getRuntime(); /**将视频压缩为 每秒15帧 平均码率600k 画面的宽与高 为1280*720*/ String cutCmd = "ffmpeg -i " + convertFile + " -r 15 -b:v 600k -s 720x1280 " + targetFile; runCmd(cutCmd); System.out.println("压缩结束"); return new File(targetFile); }
/* * linux下 ffmpeg命令的执行方法 * * @param command 执行的命令字符串 */ public static void runCmd(String command) { try { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(command); InputStream stderr = proc.getErrorStream(); InputStreamReader isr = new InputStreamReader(stderr); BufferedReader br = new BufferedReader(isr); String line; System.out.println("开始执行"); while ((line = br.readLine()) != null) { System.out.println(line); } System.out.println("执行结束"); int exitVal = proc.waitFor(); System.out.println("Process exitValue: " + exitVal); } catch (Throwable t) { System.out.println(t); t.printStackTrace(); } }
三、如果需要打入Docker镜像,Dockerfile如下
FROM centos:7 MAINTAINER ENV REFRESHED_AT 2021-11-25 #切换镜像目录,进入/usr目录 WORKDIR /usr ##在/usr/下创建jdk目录,用来存放jdk文件 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo 'Asia/Shanghai' >/etc/timezone && \ mkdir -p jdk && \ mkdir -p logs && \ mkdir -p video && \ mkdir -p pdf ##将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下 ADD jdk-8u91-linux-x64.tar.gz /usr/jdk/ ##安装ffmpeg RUN yum install -y gcc #RUN yum install -y yasm RUN yum install -y make WORKDIR /usr/local RUN mkdir -p ffmpeg ##将ffmpeg放在/usr/local/ffmpeg ADD ffmpeg-3.1.tar.gz /usr/local/ffmpeg ADD yasm-1.3.0.tar.gz /usr/local/ffmpeg WORKDIR /usr/local/ffmpeg/yasm-1.3.0 RUN ./configure RUN make RUN make install WORKDIR /usr/local/ffmpeg/ffmpeg-3.1 RUN ./configure --enable-shared --prefix=/usr/local/ffmpeg RUN make RUN make install WORKDIR /usr #修改文件/etc/ld.so.conf ADD ld.so.conf /etc/ld.so.conf ##设置环境变量 ENV JAVA_HOME=/usr/jdk/jdk1.8.0_91 ENV JRE_HOME=$JAVA_HOME/jre ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH=/sbin:$JAVA_HOME/bin:$PATH ENV FFMPEG_PATH=/usr/local/ffmpeg ENV PATH=$PATH:/usr/local/ffmpeg/bin ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib RUN yum install -y lsof && \ yum install -y vim && \ yum install -y unzip && \ yum install -y zip && \ yum install telnet-server -y && \ yum install telnet -y && \ yum install kde-l10n-Chinese -y && \ localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 ENV LC_ALL zh_CN.UTF-8 #公开端口 #EXPORT 37090
-
zip4j_1.3.2 - Java操作zip压缩文件接口最新版本
2015-01-09 11:27:53Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java... -
Java 7~14各个版本新特性详解
2020-04-15 17:51:03Java 7 特性列表 switch中添加对String类型的支持 数字字面量的改进 / 数值可加下划 异常处理(捕获多个异常) try-with-resources 增强泛型推断 JSR203 NIO2.0(AIO)新IO的支持 JSR292与InvokeDynamic指令 ... -
压缩、解压缩.zip,.rar,.7z格式java工具类
2017-07-03 10:57:57最近工作中需要将压缩的图片上传,最后解压。这里结合网上的资源,写了一个解压的工具类,解压常见的.zip,.rar,.7z格式。新建一个maven工程吧,方便添加管理相应的jar包。 pom文件:... -
Java Zip 基于内存实现压缩和解压 附可用工具类
2020-08-21 17:21:15Zip是常用的无损压缩算法实现,Java中提供了Zip的实现,本文演示基于内存的方式进行压缩和解压,演示只针对一层目录结构进行,多层目录只需递归操作进行即可。 文中提供完整的工具类,以供大家使用。 ... -
java虚拟机官方下载|Java Virtual Machine(java虚拟机)下载v5.0官方版 附安装教程 - 欧普软件下载
2021-02-12 09:31:36内置完善的硬件架构,用户可以通过计算机仿真模拟各种Java功能,包括javac、Java命令执行、Java程序编写等等,是一款非常不错的Java虚拟机,推荐大家下载!基本介绍Java虚拟机(JVM)是Java Virtual Machine的缩写,它... -
【JAVA视频压缩】-------轻量级视频压缩组件JAVE
2020-03-30 16:26:12通过搜索发现了ffmpeg,javacv,这两个是比较主流的流媒体组件,但是研究下来发现,如果仅仅是需要视频压缩的话,那么就有点大材小用了。FFmpeg是C语言开发的,对于我们java来说有点难了,而javacv是java语言写的,... -
java源码包---java 源码 大量 实例
2013-04-18 23:15:26Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和... -
java与模式清晰书签版分卷压缩5-4
2008-07-18 14:13:44java与模式清晰书签版 java与模式清晰版 java与模式书签版 java与模式免费下载 用7-zip压缩工具解压 -
Java15下载 JDK15(Java SE Development Kit 15) 15.0.2 官方正式版 Win64位 下载-脚本之家
2021-02-27 08:13:35Java Development Kit 15简称JDK15,是Java必备的一款开发工具包,包含Java运行环境、Java开发...本次为大家带来了最新的Java SE 15最新版下载程序,欢迎需要的朋友前来下载使用。根据发布规划,这是一个短期版本... -
教程|Eclipse压缩版下载与使用
2019-03-25 20:24:38教程|Eclipse压缩版下载与使用一、Eclipse介绍二、教程介绍三、Eclipse下载 方式一四、Eclipse下载 方式二五、解压使用 一、Eclipse介绍 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它... -
Java Zip 基于磁盘实现压缩和解压 附可用工具类
2020-08-21 17:17:39Zip是常用的无损压缩算法实现,Java中提供了Zip的实现,本文演示基于磁盘的方式进行压缩和解压,演示只针对一层目录结构进行,多层目录只需递归操作进行即可。 文中提供完整的工具类,以供大家使用。 ... -
java 压缩/解压【tar.gz】
2017-05-27 18:26:58java:jdk7 第三方包:commons-compress-1.14.jar需求不管是文件夹还是常规文件,实现基本的打包压缩。思路: ①先把需要压缩的文件,打包成.tar文件。 ②使用gzip把刚刚打包的.tar文件进行压缩(tar.gz)打包... -
java与模式清晰书签版分卷压缩5-2
2008-07-18 14:08:41java与模式清晰书签版 java与模式清晰版 java与模式书签版 java与模式免费下载 用7-zip压缩工具解压 -
java开源包7
2013-06-28 09:52:16淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的... -
java与模式清晰书签版分卷压缩5-5
2008-07-18 14:14:51java与模式清晰书签版 java与模式清晰版 java与模式书签版 java与模式免费下载 用7-zip压缩工具解压 -
牛逼!Java 从入门到精通,超全汇总版
2021-05-06 19:40:33文章目录Java 基础Head First JavaJava 核心技术卷一Java 编程思想设计模式Head First 设计模式图解设计模式设计模式重学 Java 设计模式Java 进阶Java 并发编程实战Java 并发编程艺术Java 并发编程之美图解Java多... -
java压缩和解压ZIP和RAR文件踩坑实践
2020-12-07 10:59:21java压缩和解压ZIP和RAR文件该文章主要内容1.引入依赖2. 支持解压缩ZIP和winrar 5版本以上的RAR代码3. 解压缩方式说明3.1 ZIP可以使用 apache ant 实现文件压缩/解压缩3.2 winrar 5以下使用java-unrar解压缩,winrar... -
Java面试题大全(2020版)
2019-11-26 11:59:06发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ... -
Java面试题大全(2021版)
2020-11-25 11:55:31发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java基础知识面试题 1、Java概述 ①. 何为编程 ... -
Java常用软件官网下载地址【汇总】
2020-05-15 15:50:59目录【前言】【JDK】【开发...(数据库客户端链接工具)【Redis】【zookeeper】【浏览器】【谷歌浏览器】(推荐)【火狐浏览器】【安全终端模拟软件】【Xshell 7】(推荐)【SecureCRT】【FTP软件】【XFtp】【Postman】 -
Tinify API批处理压缩PNG和JPG(Java版本)
2017-06-06 21:29:56因为工作的需要,所以用Tinify的Java API写了一个批处理小程序,主要是用来自动压缩UI和美术工具生成的新图片。在这里就分享出来,如果只是单纯的开发,其实真的是很简单,官方给的教程就很清晰了。稍微麻烦点的是... -
java下载文件夹
2020-08-19 20:41:00下载指定文件夹下的所有文件 public String zipDownloadRelativePath(HttpServletRequest request,HttpServletResponse response) { String msg ="";//下载提示信息 String root = request.getSession()....