java图片压缩
来源:互联网 发布:淘宝评价服务是什么 编辑:程序博客网 时间:2024/05/14 08:05
package com.company.Logo;import net.coobird.thumbnailator.Thumbnails;import javax.imageio.IIOImage;import javax.imageio.ImageIO;import javax.imageio.ImageWriteParam;import javax.imageio.ImageWriter;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;/** * Created by Administrator on 2016/12/22. */public class compressImage { public static void main(String[] args) throws IOException{ File img = new File("D:\\xx"); File[] imgFiles = img.listFiles(); String[] str = {"jpg","gif","png","jpeg"};// for(int k = 0;k<imgFiles.length;k ++){// String file2 = imgFiles[k].getName();////// } System.out.println("获取目录下的图片"); String path = "D:\\xx"; String pathalbum = path + "album\\"; System.out.println(pathalbum); String pathshow = path + "show\\"; File dir =new File(path); File[] files = dir.listFiles(); for(int i=0;i<files.length;i++){ //过滤非图片 String fileType = files[i].getName().substring(files[i].getName().lastIndexOf('.')+1,files[i].getName().length()); System.out.println("fileType:" + fileType); for(int t=0;t<str.length;t++){ if("jpeg".equals(fileType)){ System.out.println(files[i].getName()); String imgName = files[i].getName(); Thumbnails.of(files[i].getPath()).scale(1).outputQuality(0.4).toFile(path + imgName); System.out.println("success"); } if(str[t].equals(fileType.toLowerCase()) && (fileType.toLowerCase() != "jpeg")){ System.out.println(files[i].getName()); String imgName = files[i].getName(); compressPic(path+ imgName,path + imgName); } } } File diralbum =new File(pathalbum); File[] filesalbum = diralbum.listFiles(); for(int i=0;i<filesalbum.length;i++){ //过滤非图片 String fileType = filesalbum[i].getName().substring(filesalbum[i].getName().lastIndexOf('.')+1,filesalbum[i].getName().length()); for(int t=0;t<str.length;t++){ if("jpeg".equals(fileType)){ System.out.println(filesalbum[i].getName()); String imgName = filesalbum[i].getName(); Thumbnails.of(filesalbum[i].getPath()).scale(1).outputQuality(0.4).toFile(pathalbum + imgName); } if(str[t].equals(fileType.toLowerCase()) && fileType.toLowerCase() != "jpeg"){ System.out.println(filesalbum[i].getName()); String imgName = filesalbum[i].getName(); compressPic(pathalbum+ imgName,pathalbum + imgName); } } } File dirshow =new File(pathshow); File[] filesshow = dirshow.listFiles(); for(int i=0;i<filesshow.length;i++){ //过滤非图片 String fileType = filesshow[i].getName().substring(filesshow[i].getName().lastIndexOf('.')+1,filesshow[i].getName().length()); for(int t=0;t<str.length;t++){ if("jpeg".equals(fileType)){ System.out.println(filesshow[i].getName()); String imgName = filesshow[i].getName(); Thumbnails.of(filesshow[i].getPath()).scale(1).outputQuality(0.4).toFile(pathshow + imgName); } if(str[t].equals(fileType.toLowerCase()) && fileType.toLowerCase() != "jpeg"){ System.out.println(filesshow[i].getName()); String imgName = filesshow[i].getName(); compressPic(pathshow+ imgName,pathshow + imgName); } } } } public static boolean compressPic(String srcFilePath,String descFilePath)throws IOException { File file=null; BufferedImage src=null; FileOutputStream out=null; ImageWriter imgWrier; ImageWriteParam imgWriteParams; // 指定写图片的方式为 jpg imgWrier= ImageIO.getImageWritersByFormatName("jpg").next(); imgWriteParams=new javax.imageio.plugins.jpeg.JPEGImageWriteParam( null); // 要使用压缩,必须指定压缩方式为MODE_EXPLICIT imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT); // 这里指定压缩的程度,参数qality是取值0~1范围内, imgWriteParams.setCompressionQuality((float)0.4); imgWriteParams.setProgressiveMode(imgWriteParams.MODE_DISABLED); try{ if(isBlank(srcFilePath)){ return false; }else{ file=new File(srcFilePath);System.out.println(file.length()); src=ImageIO.read(file); out=new FileOutputStream(descFilePath); imgWrier.reset(); // 必须先指定 out值,才能调用write方法, ImageOutputStream可以通过任何 // OutputStream构造 imgWrier.setOutput(ImageIO.createImageOutputStream(out)); // 调用write方法,就可以向输入流写图片 imgWrier.write(null,new IIOImage(src,null,null), imgWriteParams); out.flush(); out.close(); } }catch(Exception e){ e.printStackTrace(); return false; } return true; } public static boolean isBlank(String string){ if(string==null||string.length()==0||string.trim().equals("")){ return true; } return false; }}
这里设置压缩后图片质量为原图的0.4,需要jar包
0 0
- java 压缩图片 实例
- Java 图片压缩
- java图片压缩
- java图片压缩
- java图片压缩、解压缩
- JAVA 图片压缩
- java 图片压缩
- java 剪切 压缩 图片
- Java图片压缩处理
- java--图片水印、压缩
- Java 压缩图片
- java 图片压缩 缩放
- Java 压缩图片
- java图片压缩
- java处理压缩图片
- java图片压缩
- Java压缩图片
- java 压缩图片实例
- CSS页面渲染优化属性will-change
- 软件需求规格说明书编写
- Unity3D 单利模式
- arcgis编辑点的坐标
- hive常用查询
- java图片压缩
- LeetCode 163. Missing Ranges
- Mysql常用SQL语句收集
- spring boot 添加jersey框架
- 技术与需求的关系
- mybatis异常
- 牛顿二项式定理
- Java 上传文件到ftp服务器
- Inheritance继承