jcrop使用时前端展示的图片大小设置,注意点

使用需求:当使用jcrop时,裁剪的操作界面大小很多时候都要设置。

使用场景:
1.向后端传递选框的x,y,wigth,higth数值和图片文件
2.后端根据图片实际大小进行裁剪(非显示大小)
3.在div容器中设置图片大小

分析:

1.前端显示的图片大小和后端裁剪的图片大小是不同的,选框的显示大小和实际大小也不同。
平常使用jcrop时获取的选框大小数据是显示的选框大小(图片显示小,选框大小数据也就小)。

2.那么在后台如果直接传x,y,w,h的数据,用这些显示的数据去裁剪原图大小的图片显然裁剪不正确

做法

//原图大小
            var screenImage = $("#original-img");
            var theImage = new Image();
            theImage.src = screenImage.attr("src");
            var imageWidth = theImage.width;
            var imageHeight = theImage.height;

            //显示大小
            var showimageWidth = screenImage.width();
            var showimageHeight = screenImage.height();

            //图片缩放比例
            var ww = imageWidth/showimageWidth
            var hh = imageHeight/showimageHeight
            //选框大小比例统一成原图大小
            x = Math.round(c.x*ww);
             y = Math.round(c.y*hh);
             width = Math.round(c.w*ww);
             height = Math.round(c.h*hh);

如上,自己去设置统一缩放选框的比例,把正确的数据给后台

ps:你也可以选择用显示的图片大小去裁剪,这样选框的大小可以不变(总之一句话:多大的图用多大的框,显示的大小不是裁剪的大小)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值