Java图片的压缩

1、如果在springMvc中,会自带生成MultipartFile文件,将MultipartFile转化为File

1 MultipartFile file1 = file;
2 CommonsMultipartFile cf= (CommonsMultipartFile)file1;
3 DiskFileItem fi = (DiskFileItem)cf.getFileItem();
4 File f = fi.getStoreLocation();

2、转化为image类,并获取一些必须的数值

1 private static Image img;
2 private static float width;
3 private static float height;
4
5 img = ImageIO.read(f);      // 构造Image对象
6 width  =  Float.parseFloat(String.valueOf(img.getWidth(null)));  // 得到源图宽
7 height =  Float.parseFloat(String.valueOf(img.getHeight(null))); // 得到源图长
8
9 System.out.println("输入的图片大小:"+f.length()/1024+"kb");

3、压缩图片

 1 //判断文件是否能转化成image类
 2 if(width!=-1){
 3    //当前例子是等比例缩放到宽为320px
 4    //缩放比例
 5    Float s=width/320;
 6    //要缩放的宽
 7    Integer w=(int) (width/s);
 8    //要缩放的高
 9    Integer h=(int) (height/s);
10
11    //创建一个模板
12    BufferedImage image = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB);
13    //在模板上绘制缩小后的图
14    image.getGraphics().drawImage(img, 0, 0, w, h, null);
15 }

4、将生成的图片转化为InputStream

ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "gif", os);
InputStream is = new ByteArrayInputStream(os.toByteArray());
时间: 2024-08-29 00:46:04

Java图片的压缩的相关文章

java 图片 批量 压缩 +全部压缩

/* oldsrc  : 原图片地址文件夹 如 'd:/' newsrc  : 压缩后图片地址文件夹 如 'e:/' widthdist,heightdist : 压缩后的宽和高 createtime 2010-11-25 @auto yijianfeng */ public void reduceImgAll(String oldsrc, String newsrc, int widthdist, int heightdist) { try { File file = new File(old

java 图片压缩变色问题

java图片压缩,有时由于图片自身的原因,如透明的PNG图.改alpha通道或四色图等. 压缩完了,会出现图片变色的情况. 如: 原图 压缩完: 尝试了很多方法,如JDK原生的方式及第三方组件java-image-scaling或thumbnailator都不解决问题. 后来采用阿里的SimpleImage解决.记录一下 SimpleImage github地址:https://github.com/alibaba/simpleimage依赖jar:commons-io-2.4.jarcommo

Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本

Atitit. 图像处理jpg图片的压缩  清理垃圾图片 java版本 1. 清理图片压缩图片尺寸 1 2. 所以要使用ImageWriter 1 3. Thumbnails质量压缩builder.outputQuality(0.9); 2 4. attilax框架的处理 code 2 5. 到一篇文章提到如何控制jpg图片后压缩的质量 3 6. 参考 4 1. 清理图片压缩图片尺寸 目标::300kb>>>10kb.. 处理流程:::scale,outputQuality(0.5) 裁

java实现的图片缩放 压缩 裁剪工具!找了很久,市面上再也找不到比它缩放效果还好的代码了

原文:java实现的图片缩放 压缩 裁剪工具!找了很久,市面上再也找不到比它缩放效果还好的代码了 源代码下载地址:http://www.zuidaima.com/share/1550463380458496.htm 纯 java 实现的 图片缩放 压缩 裁剪工具!不依赖任何第三方 jar 包 1. 找了很久,市面上再也找不到比它缩放效果还好的代码了 (再不使用任何第三方组件的前提下) 2. 支持缩放 3. 支持剪切 (例如:用户上传头像后剪切成正方形小图) /* * Copyright 2012

Android加载大图片(压缩)

转载自http://blog.csdn.net/junjx/article/details/7798604 在Android开发中,我们经常需要加载图片.但是图片的尺寸往往会很大,如果我们要的是比较小的图片,在Android有限的内存下,我们显然不能把大尺寸的图片放到内存里,这样不但效率降低,而且会导致java.lang.OutOfMemory异常,相信很多朋友都遇到过这样的问题,那么该怎么解决这一问题呢?其实在Android官方文档中早已给出了解决的方案. 一.读Bitmap的尺寸和类型   

图片的压缩

我们从网上获取图片有时太大我们的手机分辨率不够所以我们就得把图片压缩 下面就是从网上获取图片直接压缩的代码 package com.example.tupian; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; imp

simpleImageTool又纯java图片水印、缩放工具

simpleImageTool又一个简单.好用的图片格式转换.缩放水印叠加等功能的纯Java图片工具库. simpleImageTool的由来,近期需要用到图片处理,通过网上的图片流直接进行缩放水印叠加等,需要一个纯java的处理库,在网上找一下没有符合我的库,要么是太老很多还是jdk1.6以前的,要么是功能不够好.找到阿里的simpleimage功能还算完善,1.7环境下想使用很麻烦,还要搞JAI的包,在改simpleimage(JPG图片处理相关的用新的ImageIO方式处理已经改好)时发现

Java图片高保真缩放工具类

Java图片高保真缩放 package com.xindai.auth.service.util; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEG

java图片上传(mvc)

最近有开始学起了java,好久没写文章了,好久没来博客园了.最近看了看博客园上次写的图片上传有很多人看,今天在一些篇关于java图片上传的.后台接收用的是mvc.不墨迹了,直接上图. 先看目录结构.idea开发. 一.图片上传还是使用的这款jq插件.前端部署这款插件,不用说了吧.效果图       二.前台代码只需要盖一个位置.因为是比较好用的插件.插件样式自行修改. 三.后台代码. 后面看不见的. 这个图片上传主要是自己写了几个函数.让图片储存更加方便.分成了年月日储存.但是后期遍历比较困难,