Java实现图片裁剪预览功能



在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章!


需要插件:jQuery Jcrop 

后端代码:


package org.csg.upload;

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class Upload {
	/**
	 * @author  小夜的传说
	 * @param path1 图片原路径
	 * @param path2  裁剪后存储的路径
	 * @param x x轴
	 * @param y y轴
	 * @param w
	 * @param h
	 */
	public static void CutImage(String path1,String path2,int x,int y,int w,int h){
		FileInputStream fileInputStream=null;
		ImageInputStream iis=null;
		
		try {
			//读取图片文件,建立文件输入流
			fileInputStream=new FileInputStream(path1);
			//创建图片的文件流 迭代器
			Iterator it = ImageIO.getImageReadersByFormatName("jpg");
			ImageReader reader=it.next();
			//获取图片流 建立文图 文件流
			iis=ImageIO.createImageInputStream(fileInputStream);
			//获取图片默认参数
			reader.setInput(iis, true);
			ImageReadParam param=reader.getDefaultReadParam();
			//定义裁剪区域
			Rectangle rect=new Rectangle(x,y,w,h);
			param.setSourceRegion(rect);
			BufferedImage bi=reader.read(0,param);
			ImageIO.write(bi, "jpg", new File(path2));
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("裁剪失败");
		}finally{
			try {
				if(fileInputStream!=null){
					fileInputStream.close();
				}
				if(iis!=null){
					iis.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			
		}
	}
}

访问代码:

<%@ page language="java" import="java.util.*,org.csg.upload.*" pageEncoding="utf-8"%>
<%
	//图片的相对路径
	String imagPath=request.getParameter("imgPath");
	String relPath=request.getRealPath("/");//获取图片服务器绝对地址
	String newFileName=new Date().getTime()+".jpg";
	//实际图片路径
	String path1=relPath+imagPath;
	//裁剪后存储到服务器的图片路径
	String path2=relPath+"/images/"+newFileName;
	
	int x=Integer.parseInt(request.getParameter("x"));
	int y=Integer.parseInt(request.getParameter("y"));
	int w=Integer.parseInt(request.getParameter("w"));
	int h=Integer.parseInt(request.getParameter("h"));
	try{
	Upload.CutImage(path1, path2, x, y, w, h);
	out.print("");
	}catch(Exception e){
	e.printStackTrace();
	out.print("图片裁剪失败");
	}
%>


jsp代码:


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


  
    Jsp开发头像裁剪
	
	
	    
	
	
	
	
	
  	
  	
  
  
 	

Java开发QQ头像裁剪系统

Preview
x轴: y轴: 宽度: 高度:



效果图,觉得好,就看下面的源码吧?


Java实现图片裁剪预览功能_第1张图片

你可能感兴趣的:(【WebDevelopmen】,Java实现图片裁剪预览)