使用java来压缩图片
使用java来压缩图片,简单几句,清清爽爽
使用0.3的压缩比得到的结果如下(从2.8M压缩到268K,且图片的清晰度看不出明显差别):

package carlspringtest; import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator; import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream; /**
* Compress JPEG File Example
*
* @author Krishna
*
*/
public class CompressJPEGFileExample {
public static void main(String[] args) throws FileNotFoundException, IOException{
File imageFile = new File("f:\\IMG_20151219_172146.jpg");//source
File compressedImageFile = new File("f:\\compressed_file5.jpg");//result InputStream inputStream = new FileInputStream(imageFile);
OutputStream outputStream = new FileOutputStream(compressedImageFile); float imageQuality = 0.3f; //Create the buffered image
BufferedImage bufferedImage = ImageIO.read(inputStream); //Get image writers
Iterator<ImageWriter> imageWriters = ImageIO.getImageWritersByFormatName("jpg"); if (!imageWriters.hasNext())
throw new IllegalStateException("Writers Not Found!!"); ImageWriter imageWriter = (ImageWriter) imageWriters.next();
ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(outputStream);
imageWriter.setOutput(imageOutputStream); ImageWriteParam imageWriteParam = imageWriter.getDefaultWriteParam(); //Set the compress quality metrics
imageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
imageWriteParam.setCompressionQuality(imageQuality); //Created image
imageWriter.write(null, new IIOImage(bufferedImage, null, null), imageWriteParam); // close all streams
inputStream.close();
outputStream.close();
imageOutputStream.close();
imageWriter.dispose();
}
}
使用java来压缩图片的更多相关文章
- java 上传图片压缩图片
package com.bitspace.flame.util; import java.io.File; import java.awt.Image;import java.awt.image.Bu ...
- java流压缩图片
整理文档,搜刮出一个Java做图片压缩的代码,稍微整理精简一下做下分享.首先,要压缩的图片格式不能说动态图片,你可以使用bmp.png.gif等,至于压缩质量,可以通过BufferedImage来指定 ...
- Java 后端压缩图片
import java.io.*;import java.util.Date;import java.awt.*;import java.awt.image.*;import javax.imagei ...
- java 上传图片 并压缩图片大小
Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生 ...
- java 上传图片 并压缩图片大小(转)
Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生 ...
- Java压缩图片的实现类
package com.function; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; ...
- java上传并压缩图片(等比例压缩或者原尺寸压缩)
本文转载自http://www.voidcn.com/article/p-npjxrbxr-kd.html 先看效果: 原图:1.33M 处理后:27.4kb 关键代码; package codeGe ...
- java中判断图片格式并且等比例压缩图片
最近项目中需要判断上传的图片必须是png,jpg,gif三种格式的图片,并且当图片的宽度大于600px时,压缩图片至600px,并且等比例的压缩图片的高度. 具体的实现形式: 大致的思路是: 判断根据 ...
- Java压缩图片
阅读目录 前言 压缩的要求 实现 优点 其他功能 前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的 ...
随机推荐
- STM in Clojure
Transactional memory in Clojure is implemented using Multiversion Concurrency Control protocol http: ...
- 泛型(Generic)
当集合中存储的对象类型不同时,那么会导致程序在运行的时候的转型异常 import java.util.ArrayList; import java.util.Iterator; public clas ...
- day6 面向对象(3)
继承 1.1 类和类之间的常见关系. 1:既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系 1.1.1 现实生活的整体与部分 举例说明 1:现实生活 1:学生 是人 2: ...
- linux下的函数dirname()和basename()使用
总览 #include <libgen.h> char *dirname(char *path); char *basename(char *path); 说明 函数以 '/' 为分隔符 ...
- 2、Python IDLE入门
转载:http://www.cnblogs.com/dsky/archive/2012/06/04/2535397.html 1.IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方 ...
- IDEA上使用github上传代码
这里的origin是表示我创建一个名为origin的仓库吗? 早已经存在了,我该怎么删除这个wenda呢? 将它修改为wenda1,如下: 点击项目,右击: 再点击项目,右击,选择commit: 问题 ...
- 快速部署Kubernetes集群管理
这篇文章介绍了如何快速部署一套Kubernetes集群,下面就快速开始吧! 准备工作 //关闭防火墙 systemctl stop firewalld.service systemctl disabl ...
- HDU - 2571 命运 DP倍数跳跃处理
命运 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,不论何人,若在迷宫中 ...
- tp5 搜索之后保留分页
当接收到参数是执行搜索 public function index($name=null){ if (isset($_REQUEST['username'])) { $name = $_REQUEST ...
- 洛谷P3110 [USACO14DEC]驮运Piggy Back
P3110 [USACO14DEC]驮运Piggy Back 题目描述 贝西和她的妹妹艾尔斯白天在不同的地方吃草,而在晚上他们都想回到谷仓休息.聪明的牛仔,他们想出了一个计划,以尽量减少他们在步行时花 ...