Jcrop裁剪图片[一] :前端js总结

最近项目中有一个截取图片的效果,于是在用到了Jcrop框架,使用中看API然后网上查阅一些文章勉勉强强算完成了这个功能,现将过程总结如下

实现思路

Jcrop来获取截取图片的起点XY和终点xy,另外还有截取范围的wh,--将这些数据传递给服务器端,然后由服务器端相应语言的API进行裁剪或者透明等等操作.

官网URL:

         http://code.ciaoca.com/jquery/jcrop/

实现效果如下图:

裁剪后

功能描述

将原图进行固定范围裁剪,然后等比缩小[相应的图片内容要有].将原图缩小并且进行裁剪圆形的操作。因为头像一般用做头像来使用,所以采取200*200的圆形。

说明

下面我贴出来一些code  

下面我贴出一些code:
		<span style="white-space:pre">	</span>//插入图片
                	$('#target-img').html('');
                	$('#target-img').append('<img id="target" src="'+$scope.updateUserObj.HeadImg+'?rnd='+Math.random()+'" />');
                	$('.close').click();
                	$scope.showHeadImg();
               <span style="white-space:pre">		</span>//声明jcrop裁剪图片
                <span style="white-space:pre">	</span>$('#target').Jcrop({
             	        onChange:   showCoords,
             	        onSelect:   showCoords,
             	        onRelease:  clearCoords,
             	        setSelect : [0,0,200,200],
             	        aspectRatio : 1
             	      },function(){
             	        jcrop_api = this;
             	      <span style="white-space:pre">	</span>
             	    });

响应事件

<script>
	function changeTable(obj){
		$('.bootTab').removeClass('active');
		$(obj).addClass('active');
		var tabcontent = $(obj).attr('data-target');
		$('.tab-pane').removeClass('active');
		$('#'+tabcontent).addClass('active');
	}

	 function showCoords(c)
	  {
	    $('#x1').val(parseInt(c.x));
	    $('#y1').val(parseInt(c.y));
	    $('#x2').val(parseInt(c.x2));
	    $('#y2').val(parseInt(c.y2));
	    $('#w').val(parseInt(c.w));
	    $('#h').val(parseInt(c.h));
	  };

	  function clearCoords()
	  {
	    $('#coords input').val('');
	  };

</script>

总结:

Jcrop基本上就是这样了,它靠绑定一个img组件来渲染出来裁剪控件的效果,官网案例中的相应code可以copy过来用,可以获取相应的上文中的起点坐标终点坐标,另外就是宽高了,控制正方体用aspectRatio属性,将属性值设置成1即可。相应的其他属性看官网吧,给的很清楚

问题

Jcrop在运用中往往会出现图片大小的问题,也就是如果图片过大,此时我们用boxWidth或者其他CSS限制了图片本来的像素值,致使图片缩小,这时候选框获取到图片相应的坐标传递到后台的不是图片实际我们想要的坐标,于是裁剪到了并不是我们想要的区域。这时候就要保证我们传递过来的坐标是实时的。而不是选框在缩小图片上的坐标。很多人遇到了这个问题。解决方案来说一般分成2个:个人选择了第一个。。

1、将图片不管大小的显示出来

2、 将图片按照一定比例显示出来,但是传递到后台的时候需要经历一个比例换算。

时间: 2024-10-01 06:12:03

Jcrop裁剪图片[一] :前端js总结的相关文章

简单的JS裁剪图片并存储

就我而言,页面上的设计比较灵动的部分,其实不是很多,诸如滑动验证码,图片裁剪等比较好的交互设计. 从刚开始工作的时候,我就想把这些东西了解下,无奈一直没这个需求,乘着今天的空闲,研究了一下午,期间遇到了大大小小的问题,一直备受折磨,这其实也反映一个问题,我的 还是比较薄弱. 话不多说,先大概讲下效果: 用户点击上传图片后,页面显示所上传的图片,并且出现裁剪框和两个预览区域,最后点击裁剪按钮保存裁剪的图片到服务器上. 效果很简单,整个过程我遇到的两个难点,第一个是裁剪的JS效果,第二个则是图片数据

支持移动端裁剪图片插件Jcrop(结合WebUploader上传)

(此教程包括前端实现图片裁剪,后端进行获取裁剪区并保存) 最近有一个需求,微信公众号上传图片,支持自定义裁剪. 以前用过一款裁剪插件cropper,很久没用了,不知道对移动端操作兼容如何,重新从网上搜索更合适的插件 首先试过PhotoClip,这个插件裁剪区域是固定的,不能自定义缩放(也许需求太匆忙没有研究透,亦或者可以修改原文件优化这一点),对于用户体验不够好,故,放弃 然后又遇到一款插件---Jcrop,完美符合需求,项目结合百度插件 WebUploader上传获取原图,可适配移动端选取相册

MVC使用JCrop上传、裁剪图片

JCrop用来裁剪图片,本篇想体验的是: 在视图页上传图片: 上传成功,跳转到另外一个编辑视图页,使用JCrop对该图片裁剪,并保存图片到指定文件夹: 裁剪成功后,在主视图页显示裁剪图片: 当然,实际项目中最有可能的做法是:在本页上传.裁剪并保存. □ 思路 →在上传图片视图页,把图片上传保存到一个临时文件夹Upload→在编辑裁剪视图页,点击"裁剪"按钮,把JCrop能提供的参数,比如宽度.高度.离顶部距离,离底部距离,离左右端距离等封装成类,传递给控制器方法→控制器方法根据接收到的

struts2+jsp+jquery+Jcrop实现图片裁剪并上传

<1> 使用html标签上传需要裁剪的大图. <2> 在页面呈现大图,使用Jcrop(Jquery)对大图进行裁剪,并且可以进行预览. <3> 选择好截取部分之后发送数据给Action,在服务器端使用 Java API 对大图进行裁剪. <4> 保存大图裁剪好的头像到指定目录,完成业务. 下面一步一步做: 第一步:使用html标签上传需要裁剪的大图. 这一步说白了也就是使用Struts2自带的FileUpload功能,把图片进行上传具体代码如下: html页

HTML5 file API加canvas实现图片前端JS压缩并上传 (转载)

一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅,同时大大降低了网络异常导致上传失败风险. 最最重要的体验改进点:省略了图片的再加工成本.很多网站的图片上传功能都会对图片的大小进行限制,尤其是头像上传,限制5M或者2M以内是非常常见的.然后现在的数码设备拍摄功能都非常出众,一张原始图片超过2M几乎是标配,此时如果用户想把手机或相机中的某个得意图片

cropper.js裁剪图片的使用

这两天难得有时间可以整理一下最近学习的东西,这两天项目中用到了头像上传裁剪的功能,这里只介绍头像的裁剪吧. 单独实现图片剪裁的功能还是挺容易的,入门级别的.看一遍官方给的文档,基本上就明白了.大家如果不想看英文版的官网介绍,可以看这篇博客,讲的特别好. 官网地址:http://fengyuanchen.github.io/cropper/ 附上网址:https://blog.csdn.net/weixin_38023551/article/details/78792400 这篇文章讲的很好. 我

百度编辑器前端二开图片上传Js

百度编辑器图片上传Jsueditor.all.min.js 下载链接 链接:https://pan.baidu.com/s/1VNgw9ELgRRHKeCQheFkQTw 提取码:fnfi 使用方法: 替换原来的 ueditor.all.min.js  原文地址:https://www.cnblogs.com/q1104460935/p/10278629.html

使用JQuery插件Jcrop进行图片截取

Jcrop插件本身并不含有图片截取功能,它仅仅是在前端层面构建一套截取动画效果并产生4个坐标点,插件使用者将这4个坐标点传回至服务器接口上进行截取操作.其优点是具有较高的通用性.浏览器兼容性(IE6+)及稳定性高,缺点是无法适用于手机H5开发(无图片缩放.拖拽效果). 最新版的Jcrop已更新到v3.0+了,本文基于 v0.9.12,由于这版本之间API及使用方式差异非常大,故本文不具备 Jcrop v3.0+ 的使用参考价值,请读者悉知. Jcrop V0.9+ 下载地址:http://dee

HTML5 本地裁剪图片并上传至服务器(转)

很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 5 步.步骤繁琐不说,当很多用户上传图片的时候也很影响服务器性能. HTML5 的出现让我们可以更方便的实现这一需求.虽然这里所说的技术都貌似有点过时了(前端界的“过时”,你懂的),但还是有些许参考价值.在这里我只说一下要点,具体实现同学们慢慢研究. 下面奉上我自己写的一个demo,在输入框中选好