• 图片的缩放(放大缩小)


    package com.school.util;
    
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    /**
     * 
     * <b>类名称:图片处理工具类</b>ImageUtils<br/>
     * <b>类描述:功能:缩放图像<br/>
     * 
     */
    public class ImageUtils {
        /**
         * 几种常见的图片格式
         */
        public static String IMAGE_TYPE_GIF = "gif";// 图形交换格式
        public static String IMAGE_TYPE_JPG = "jpg";// 联合照片专家组
        public static String IMAGE_TYPE_JPEG = "jpeg";// 联合照片专家组
        public static String IMAGE_TYPE_BMP = "bmp";// 英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式
        public static String IMAGE_TYPE_PNG = "png";// 可移植网络图形
        public static String IMAGE_TYPE_PSD = "psd";// Photoshop的专用格式Photoshop
    
        /**
         * 
         * scale(缩放图像(按比例缩放))<br/>
         * 
         * @param in
         *                    源图像文件
         * @param scale
         *                    缩放系数,缩小时小于1(如:0.7   0.8),放大时大于1),放大时大于1
         * @return
         * @return BufferedInputStream
         * @exception
         * @since 1.0.0
         */
        public static void scale(String srcImageFile,String result, float scale) {
            try {
                System.out.println("源文件大小===="+new File(srcImageFile).length());
                BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件
                int width = src.getWidth(); // 得到源图宽
                int height = src.getHeight(); // 得到源图长
                // 计算新的宽度和高度
                width = Integer.valueOf(new Float(width * scale).intValue());
                height = Integer.valueOf(new Float(height * scale).intValue());
                Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT);
                BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
                Graphics g = tag.getGraphics();
                g.drawImage(image, 0, 0, null); // 绘制缩小后的图
                g.dispose();
                ImageIO.write(tag, "JPEG", new File(result));// 输出到文件流
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    C++一个类对象的大小计算
    C++多态及其实现原理
    C ++内存管理
    C++ 面向对象的三大特性和五个原则
    Liunx系统下的进程与线程
    selenium 常用方法
    Jenkins UI 自动化持续化集成测试
    教育数据挖掘可投的会议及期刊整理
    SonarQube-7.9.1+SQL Server2017在Windows环境下的安装与配置
    win10+Anaconda3+PyCharm 2019.1+python3.7-tensorflow-gpu1.13.1(RTX2080深度学习环境配置)
  • 原文地址:https://www.cnblogs.com/sunhaoyu/p/4603002.html
Copyright © 2020-2023  润新知