java 处理图片

1、pom.xml

<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

 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:[email protected]
 * @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();
		}
		Builder<File> f = 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 的图片。


你可能感兴趣的:(java 处理图片)