资源简介
实现图片的压缩
1.按照固定的比例缩放图片
2.以宽度为基准等比例放缩图片
3.以高度为基准,等比例缩放图片
4.按照最大高度限制,生成最大的等比例缩略图
代码片段和文件信息
package com.wufe.project.web.fyb.background.util;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* title:
* Description:
* Copyright: Copyright (c)2007-6-13
* Company: fuen
* 用于图片的压缩
* @author 范银波
* @version 1.0
*/
public class ImageCompression {
private String srcFile;
private String destFile;
private int width;
private int height;
private Image img;
// public ImageCompression()
// {
//
// }
//
// public ImageCompression(String fileName) throws IOException
// {
//
// compression(fileName);
// }
//
/**
* 构造函数
* @param fileName String
* @throws IOException
*/
public ImageCompression(String fileName) throws IOException {
File _file = new File(fileName); //读入文件
this.setSrcFile(_file.getName());
int idx = fileName.lastIndexOf(“\\“);
fileName = fileName.substring(0 idx);
System.out.println(fileName);
System.out.println(this.srcFile);
this.destFile = fileName+“/s“+this.srcFile;//this.srcFile.substring(0 this.srcFile.lastIndexOf(“.“)) +“_s.jpg“;
img = javax.imageio.ImageIO.read(_file); //构造Image对象
width = img.getWidth(null); //得到源图宽
height = img.getHeight(null); //得到源图长
}
/**
* 强制压缩/放大图片到固定的大小
* @param w int 新宽度
* @param h int 新高度
* @throws IOException
*/
public void resize(int w int h) throws IOException {
BufferedImage _image = new BufferedImage(w hBufferedImage.TYPE_INT_RGB);
_image.getGraphics().drawImage(img 0 0 w h null); //绘制缩小后的图
FileOutputStream newimageout = new FileOutputStream(destFile); //输出到文件流
/*
* JPEGImageEncoder 将图像缓冲数据编码为 JPEG 数据流。该接口的用户应在 Raster
* 或 BufferedImage 中提供图像数据,在 JPEGEncodeParams 对象中设置必要的参数,
* 并成功地打开 OutputStream(编码 JPEG 流的目的流)。JPEGImageEncoder 接口可
* 将图像数据编码为互换的缩略 JPEG 数据流,该数据流将写入提供给编码器的 OutputStream 中。
注意:com.sun.image.codec.jpeg 包中的类并不属于核心 Java API。它们属于 Sun 发布的
JDK 和 JR
评论
共有 条评论