网站上传图片功能是必不可少的一个功能模块,然而我们不能就图片上传到服务器就不管了,而是要对图片等进行等比例缩放啊、加水印等处理。和大家分享下面这段代码,集成了对上传图片的缩放以及裁剪等处理。
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class FileUploadUtils {
/**
* 裁剪图片
* @param input
* @param basepath
* @param uid
* @param x
* @param y
* @param width
* @param height
* @return 绝对路径
* @throws IOException
*/
public static String cutImg(String input,String basepath,int x,int y,int width,int height) throws IOException{
String path2 = basepath+"/"+ConstantUtils.USERFACETEMPPATH;
String postfix = getPostfix(input);
String dst = path2 +"/"+UUID.randomUUID().toString()+"."+postfix;
createDir(path2);
imgCut(basepath+input,dst,
/**
* 上传头像文件
* @param src
* @param basepath
* @param filename
* @return
* @throws Exception
*/
public static String uploadImg(File
//对上传的文件进行 等比例 裁剪。 按照前段要展现的 height width
Thumbnail(dstallpath,dstthumbnailpath,350,300,100);
//返回裁剪后的路径
return thumbnailpath+"/"+dsttempname;
}
/**
* 上传文件
* @param src
* @param dst
* @throws Exception
*/
public static void copy(File src, File dst) throws Exception {
try {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(