• 大小: 5KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Java
  • 标签: 图片压缩  

资源简介

实现图片的压缩 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

评论

共有 条评论