java 图片缩略图


导入包在jdk的jre下的rt.jar

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;

import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class TestMain {
    private static final float DEFAULT_SCALE_QUALITY = 1f;
    private static final String DEFAULT_IMAGE_FORMAT = ".jpg"; // 图像文件的格式
    private static final String DEFAULT_FILE_PATH = "E:/";
    private static Image image;

  public static String resize(int width, int height, Float quality, String savePath, Image targetImage) throws ImageFormatException, IOException {
         width = Math.max(width, 1);
         height = Math.max(height, 1);
         BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
         image.getGraphics().drawImage(targetImage, 0, 0, width, height, null);
         
         if (savePath == null || "".equals(savePath)) {
             savePath = DEFAULT_FILE_PATH + System.currentTimeMillis() + DEFAULT_IMAGE_FORMAT;
         }
         
         FileOutputStream fos = new FileOutputStream(new File(savePath));
         JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
         
         JPEGEncodeParam encodeParam = JPEGCodec.getDefaultJPEGEncodeParam(image);
         if (quality == null || quality <= 0) {
             quality = DEFAULT_SCALE_QUALITY;
         }
         /** 设置图片压缩质量 */  
         encodeParam.setQuality(quality, true);  
         encoder.encode(image, encodeParam);  
 
         image.flush();
         fos.flush();
         fos.close();
         
         return savePath;
     }
 
 public static void main(String[] args) throws Exception {
  File f =new File("F://aa.jpg");
  image = ImageIO.read(f);

  TestMain.resize(150, 150, null, null, image);
 
 }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值