zoukankan      html  css  js  c++  java
  • jcrop+java 后台

     1 //jcrop 用法  lpf 
     2 //页面引入
     3 //<link rel="stylesheet" href="${basePath}/scripts/jcrop/jquery.Jcrop.css" type="text/css" />
     4 //<script src="${basePath}/scripts/jcrop/jquery.Jcrop.js"></script>
     5 //图片位置<img src="" id="target" style=" 100%;height:100%;"/>
     6 //赋值框<form action="${basePath}/success.jsp" method="post" >          
     7         //x轴:<input type="text" size="4" id="x1" name="x" />  
     8         //y轴:<input type="text" size="4" id="y1" name="y"/>  
     9         //宽度:<input type="text" size="4" id="w" name="w"/>  
    10         //高度:<input type="text" size="4" id="h" name="h"/> 
    11         //显示图片宽:<input type="text" size="4" id="tw" name="tw"/>          
    12         //<input type="button" value="裁剪" onclick="uploadImage();"/>  
    13 //</form>
    14 jQuery(function($){
    15 //浏览器宽高
    16 var width=$(window).width();
    17 var height=$(window).height();
    18 //图片工具对象
    19 var jcrop_api,  
    20 boundx="",  
    21 boundy="",  
    22 $preview = $('#preview-pane'),  
    23 $pcnt = $('#preview-pane .preview-container'),  
    24 $pimg = $('#preview-pane .preview-container img'),  
    25 xsize = $pcnt.width(),  
    26 ysize = $pcnt.height();  
    27  $('#target').Jcrop({  
    28     onChange:showCoords,//获取选中的值  
    29     onSelect:showCoords,//获取拖拽的值  
    30     keySupport:true,
    31     aspectRatio:1,
    32     boxWidth:width,
    33     boxHeight:height                         
    34  },function(){  
    35       var bounds = this.getBounds();  
    36       boundx = bounds[0];  
    37       boundy = bounds[1];  
    38       jcrop_api = this;  
    39       $preview.appendTo(jcrop_api.ui.holder);                                      
    40     });
    41  //赋值
    42  function showCoords(c){  
    43     var x=c.x;  
    44     var y=c.y;  
    45     var w=c.w;  
    46     var h=c.h;  
    47     $("#x1").val(parseInt(x));  
    48     $("#y1").val(parseInt(y));  
    49     $("#w").val(parseInt(w));  
    50     $("#h").val(parseInt(h));  
    51  if (parseInt(c.w) > 0){  
    52         var rx = xsize / c.w;  
    53         var ry = ysize / c.h;  
    54         $pimg.css({  
    55            Math.round(rx * boundx) + 'px',  
    56           height: Math.round(ry * boundy) + 'px',  
    57           marginLeft: '-' + Math.round(rx * c.x) + 'px',  
    58           marginTop: '-' + Math.round(ry * c.y) + 'px'  
    59         });  
    60       }  
    61  }  
    62 //更换图片设置
    63  function upimg(img){
    64      jcrop_api.setImage(img,function(){
    65      this.setOptions({
    66            bgOpacity:0.6,
    67            minSize: [80, 80],
    68              maxSize: [350, 350]          
    69      });
    70      var bounds = this.getBounds();  
    71      boundx = bounds[0];  
    72      $('#tw').val(boundx);
    73      this.setSelect(getRandom());    
    74      });
    75  }
    76  //随机选择框
    77  function getRandom() {
    78      var dim = jcrop_api.getBounds();
    79      return [
    80        Math.round(Math.random() * dim[0]),
    81        Math.round(Math.random() * dim[1]),
    82        Math.round(Math.random() * dim[0]),
    83        Math.round(Math.random() * dim[1])
    84      ];
    85    };
    86 });
     1 File fromPic = new File(fileSavePath);
     2             BufferedImage image = ImageIO.read(fromPic);
     3             int imageWidth = image.getWidth();
     4             // 按比例缩放后 输出到 BufferedImage
     5             BufferedImage thumbnail = Thumbnails.of(fileSavePath)
     6                     .scale(Double.valueOf(request.getParameter("tw"))
     7                             / imageWidth)
     8                             .asBufferedImage();
     9                     // 截取图片路径,
    10                     fileSavePath = request.getSession().getServletContext()
    11                     .getRealPath("/upload")
    12                     + "/" + upLoadPath + newfilename + "_thum.jpg";
    13                     //生成截取图片,按照坐标
    14                     Thumbnails
    15                     .of(thumbnail)
    16                     .sourceRegion(
    17                             Integer.valueOf(request.getParameter("x")),
    18                             Integer.valueOf(request.getParameter("y")),
    19                             Integer.valueOf(request.getParameter("w")),
    20                             Integer.valueOf(request.getParameter("h")))
    21                     .size(Integer.valueOf(request.getParameter("w")),
    22                             Integer.valueOf(request.getParameter("h")))
    23                     .keepAspectRatio(false)
    24                     .toFile(fileSavePath);

    在页面进行截取的时候,如果所操作的图片与原图大小不一致,在后台进行截取的时候就会出现偏差,

    此处拿到原图后会与页面显示的图片大小进行比较,计算比例,进行比例缩放,在进行截取

  • 相关阅读:
    数组作为方法参数
    定义一个方法,根据商品总价,计算出对应的折扣并输出。折扣信息如下
    Cocos2d入门--1--初涉相关属性或代码
    JSP基础--JAVA遇见HTML
    查找算法--折半查找
    排序算法--冒泡排序
    排序算法--简单选择排序
    C语言的传值与传址调用
    学习C语言的数组
    如何获取QQ里的截图app?
  • 原文地址:https://www.cnblogs.com/-lpf/p/5617878.html
Copyright © 2011-2022 走看看