zoukankan      html  css  js  c++  java
  • Java压缩图片的实现类

    package com.function;
    
    import java.awt.geom.AffineTransform;
    import java.awt.image.AffineTransformOp;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    /*
     * 这是一个压缩图片的实现类
     */
    public class Tools_CompressPictures {
        public void compressPicture(String srcImage,String tarImage) {
            File srcImageFile = new File(srcImage);
            File tarImageFile = new File(tarImage);
            // 生成图片转化对象
            AffineTransform transform = new AffineTransform();
            // 通过缓存读入缓存对象
            BufferedImage image = null;
            try {
                image = ImageIO.read(srcImageFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
            int imageWidth = image.getWidth();//原图片的高度
            int imageHeight = image.getHeight();//原图片的宽度
            int changeWidth = 640;//压缩后图片的高度
            int changeHeight = 480;//压缩后图片的宽度
            double scaleWidth = 0;// 定义小图片和原图片比例
            double scaleHeight = 0;
            scaleWidth = (double) changeWidth / (double) imageWidth;
            scaleHeight = (double) changeHeight / (double) imageHeight;
         // 生成转换比例
            transform.setToScale(scaleWidth, scaleHeight);
            // 生成转换操作对象
            AffineTransformOp transOp = new AffineTransformOp(transform, null);
            //生成压缩图片缓冲对象
            BufferedImage basll = new BufferedImage(changeWidth, changeHeight,
                    BufferedImage.TYPE_3BYTE_BGR);
            //生成缩小图片
            transOp.filter(image, basll);
            try {
                //输出缩小图片
                ImageIO.write(basll, "jpg",tarImageFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
            
            
        }
    
    }
     


  • 相关阅读:
    initwithcoder和 initwithframe 区别?
    iOS图形处理和性能
    iOS图形处理和性能
    Objc的底层并发API
    Objc的底层并发API
    位运算
    位运算
    网页开发的6种在线调试环境
    网页开发的6种在线调试环境
    Python基本语法_函数属性 & 参数类型 & 偏函数的应用
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/9708644.html
Copyright © 2011-2022 走看看