图片的缩放(放大缩小)

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();
        }
    }
}

 

posted @ 2015-06-26 18:17  Smile_灰太狼  阅读(1734)  评论(0编辑  收藏  举报