jquery jcrop 与后台截取图片

主要是前台工作,后台比较简单

jcrop

                $jQuery('#target').Jcrop({
                          allowSelect: true,
                          bgOpacity: 0.5,
                          baseClass: 'jcrop',
                          //bgOpacity: .6,
                          aspectRatio: 3/2,  //设置选择框的比重
                          boxWidth: 600,//用于设置画布的大小可以将布局按倍数缩放
                          boxHeight: 600,
                          onChange:   showCoords,
                          onSelect:   showCoords,
                          onRelease:  clearCoords
                     }, function() {
                        jcropApi = this;
                        jcropApi.setSelect([30,30,30+270,30+170]);
                        //alert(222);
                        //jcropApi.setImage(blobURL);
                     });

function showCoords(c)
{
jQuery(‘#x1’).val(c.x);jQuery(‘#y1’).val(c.y);
jQuery(‘#x2’).val(c.x2);jQuery(‘#y2’).val(c.y2);
jQuery(‘#w’).val(c.w);jQuery(‘#h’).val(c.h);
};

x、y是左上角坐标
w,h是宽度和高度

这里注意boxWidth:是画布的限制,
如果图片特别大,到了2000px,那么boxwidth就会对他进行限制,
等比例限制到boxWidth下;
原理上:将原来的div、img隐藏、新建一个div img是比例缩放的;
这时候就在画布大小上就可以展示下了,记录下xscale、yscale;

当进行选择onchange 事件后,
回调unscale,让比例等比例返回,这样你得到的x、y和width、height就是原值了
以下相关源码:

      function update(select) //{{{
      {
        var c = Coords.getFixed();

        resize(c.w, c.h);
        moveto(c.x, c.y);
        if (options.shade) Shade.updateRaw(c);

        awake || show();

        if (select) {
          options.onSelect.call(api, unscale(c));
        } else {
          options.onChange.call(api, unscale(c));
        }
      }

    function unscale(c) //{{{
    {
      return {
        x: c.x * xscale,
        y: c.y * yscale,
        x2: c.x2 * xscale,
        y2: c.y2 * yscale,
        w: c.w * xscale,
        h: c.h * yscale
      };
    }

只需要将x、y、w、h传到后台,再将原始图片传到后台,进行后台图片截取就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值