栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java如何实现图片裁剪预览功能

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 {
 
 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开发头像裁剪
 
 
  
 
 
 
 
 
  
  *{margin: 0;padding: 0;}
  .cut{
   margin-top: 20px;
  }
  #preview-pane {
   display: block;
   position: absolute;
   z-index: 2000;
   top: 10px;
   right: -280px;
   padding: 6px;
   border: 1px rgba(0,0,0,.4) solid;
   background-color: white;
   -webkit-border-radius: 6px;
   -moz-border-radius: 6px;
   border-radius: 6px;
   -webkit-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
   -moz-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
   box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
 }
  
 #preview-pane .preview-container {
  width: 250px;
  height: 170px;
  overflow: hidden;
 }
  
  
 
 
 Java开发QQ头像裁剪系统
 
  
  
   
    
   
  
 
 
 


效果图:

以上就是本文的全部内容,希望大家能够喜欢。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/151334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号