java对图片进行压缩和resize

这里展示一下如何对图片进行压缩和resize。

压缩

1public static boolean compress(String src,String to, float quality) { 2 boolean rs = true; 3 4 // Build param 5 JPEGEncodeParam param = null; 6 7 // Build encoder 8 File destination = new File(to); 9 FileOutputStream os = null; 10 try { 11 BufferedImage image = ImageIO.read(new File(src)); 12 param = JPEGCodec.getDefaultJPEGEncodeParam(image); 13 param.setQuality(quality, false); 14 15 os = FileUtils.openOutputStream(destination); 16 JPEGImageEncoder encoder; 17 if (param != null) { 18 encoder = JPEGCodec.createJPEGEncoder(os, param); 19 } else { 20 return false; 21 } 22 encoder.encode(image); 23 } catch(Exception e){ 24 e.printStackTrace(); 25 rs = false; 26 }finally { 27 IOUtils.closeQuietly(os); 28 } 29 return rs; 30 }

resize

1public static boolean resize(String src,String to,int newWidth,int newHeight) { 2 try { 3 File srcFile = new File(src); 4 File toFile = new File(to); 5 BufferedImage img = ImageIO.read(srcFile); 6 int w = img.getWidth(); 7 int h = img.getHeight(); 8 BufferedImage dimg = new BufferedImage(newWidth, newHeight, img.getType()); 9 Graphics2D g = dimg.createGraphics(); 10 g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); 11 g.drawImage(img, 0, 0, newWidth, newHeight, 0, 0, w, h, null); 12 g.dispose(); 13 ImageIO.write(dimg, "jpg", toFile); 14 } catch (Exception e) { 15 e.printStackTrace(); 16 return false; 17 } 18 return true; 19 }
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )