java 创建缩略图
import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.apache.commons.lang.StringUtils;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGEncodeParam;import com.sun.image.codec.jpeg.JPEGImageEncoder;/** * * 工具类 Copyright (c) 2008 by MTA. * */public class ImageUtils {/** * 创建缩略图 * * @param file * 上传的文件流 * @param height * 最小的尺寸 * @throws IOException */public static void createMiniPic(File file, float width, float height,String newImgName)throws IOException {Image src = javax.imageio.ImageIO.read(file); // 构造Image对象int old_w = src.getWidth(null); // 得到源图宽int old_h = src.getHeight(null);int new_w = 0;int new_h = 0; // 得到源图长float tempdouble;if (old_w >= old_h) {tempdouble = old_w / width;} else {tempdouble = old_h / height;}if (old_w >= width || old_h >= height) { // 如果文件小于锁略图的尺寸则复制即可new_w = Math.round(old_w / tempdouble);new_h = Math.round(old_h / tempdouble);// 计算新图长宽while (new_w > width && new_h > height) {if (new_w > width) {tempdouble = new_w / width;new_w = Math.round(new_w / tempdouble);new_h = Math.round(new_h / tempdouble);}if (new_h > height) {tempdouble = new_h / height;new_w = Math.round(new_w / tempdouble);new_h = Math.round(new_h / tempdouble);}}BufferedImage tag = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB);tag.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); // 绘制缩小后的图if(StringUtils.isNotBlank(newImgName)){final int len = file.getPath().lastIndexOf(File.separator);String fn = file.getPath().substring(0, len + 1) + newImgName;file = new File(fn);}FileOutputStream newimage = new FileOutputStream(file); // 输出到文件流JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(tag);param.setQuality((float) (100 / 100.0), true);// 设置图片质量,100最大,默认70encoder.encode(tag, param);encoder.encode(tag); // 将JPEG编码newimage.close();}}public static void main(String[] s) {//File srcFile = new java.io.File("d:/我的文档/桌面/桌面文件/sara_and_zack.jpg");//ImageUtils.upload("555555.jpg", "d:/我的文档/桌面/桌面文件/", srcFile);String ss = "/upload/content/aa.jps";String [] aa = ss.split("/");}}
?