1、pom.xml
net.coobird thumbnailator 0.4.8
2、java代码
package com.wong.core.util;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import javax.imageio.ImageIO;import javax.imageio.ImageReader;import javax.imageio.stream.ImageInputStream;import net.coobird.thumbnailator.Thumbnails;import net.coobird.thumbnailator.Thumbnails.Builder;/** * @author huangzhibin E-mail:huangzhibin@touch-spring.com * @version 2014年12月18日 下午12:30:46 * */public class ImageUtil { /** * 缩略图片 * @param filePath 原图地址 * @param thumbPath 缩略图地址 * @param width 缩放width * @param height 缩放height * @param isforce 是否按比例 * @param scale 按百分比缩放 * @param quality 图片质量 * @param rotate 旋转角度 * @return */ public static String thumb(String filePath, String thumbPath, int width, int height, boolean isforce, double scale, double quality, double rotate) { File img = new File(thumbPath); // 如果存在则返回 if (img.exists()) { return img.getPath(); } Builderf = Thumbnails.of(filePath); // 只按width缩放 if (width > 0 && height <= 0) { f.width(width).keepAspectRatio(isforce); } // 只按height缩放 if (width <= 0 && height > 0) { f.height(height).keepAspectRatio(isforce); } // 按照widthxheight缩放 if (width > 0 && height > 0) { f.size(width, height).keepAspectRatio(isforce); } //按照比例缩放 if (scale > 0.0D) { f.scale(scale); } //缩略图质量 if (quality > 0.0D) { f.outputQuality(quality).outputFormat("jpg"); } //旋转角度 if (rotate > 0.0D) { f.rotate(rotate); } try { f.toFile(img); return img.getPath(); } catch (IOException e) { e.printStackTrace(); } return filePath; }}
注意 : outputFormat:输出的图片格式。注意使用该方法后toFile()方法不要再含有文件类型的后缀了,否则会生成 IMG_20131229_114806.jpg.jpg 的图片。