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