使用cropper.js裁剪头像
来源:互联网 发布:怎么做好网络宣传 编辑:程序博客网 时间:2024/06/05 20:57
最近项目需要头像裁剪的功能,在网上找了一下,发现了github上的cropper项目还不错,借鉴了一下。。用起来挺简单的,下面是我做的一个小例子:
开始先放个成品图:
下面给出前后端的代码
前端页面是一个单独的jsp页面,用来做弹出层来裁剪图片比较好。
关于jsp页面引用的两个关于cropper的 文件,我就不提供了。大家需要的可以去官方的github上去下载。
地址:https://github.com/fengyuanchen/cropper
jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ include file="../common_front.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><link rel="stylesheet" href="${path }/front/plugins/cropper/cropper.css"><script src="${path }/front/plugins/cropper/cropper.js"></script><link rel="stylesheet" type="text/css" href="${path }/admin/static/h-ui/css/H-ui.min.css" /> <style> .container { max-width: 640px; margin: 20px auto; } img { max-width: 100%; } #result img{ max-width: 200px; max-height: 200px; } .cropper-view-box, .cropper-face { border-radius: 50%; } </style> <script type="text/javascript"> function getSize(size){ var num=parseInt(size); if(num<=300){//先要求图片的大小小于300之间 return num; } return getSize(num/2); } function getRoundedCanvas(sourceCanvas) { var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); var width = sourceCanvas.width; var height = sourceCanvas.height; width=getSize(width); height=width; canvas.width = width; canvas.height = height; context.beginPath(); context.arc(width/2, height/2, Math.min(width, height)/2, 0, 2 * Math.PI); context.strokeStyle = 'rgba(0,0,0,0)'; context.stroke(); context.clip(); context.drawImage(sourceCanvas, 0, 0, width, height); return canvas;}$(function(){ var $image = $('#image'); var $button = $('#button'); var $result = $('#result'); var croppable = false; $image.cropper({ aspectRatio: 1, viewMode: 1, ready: function () { croppable = true; } }); $button.on('click', function () { var croppedCanvas; var roundedCanvas; if (!croppable) { return; } // 裁剪 croppedCanvas = $image.cropper('getCroppedCanvas'); if(croppedCanvas.width>1080){ alert("图片过大,请重新选择!"); return false; } // 生成圆形 roundedCanvas = getRoundedCanvas(croppedCanvas); //判断图片大小,若果超过1080 $("#icon").val(roundedCanvas.toDataURL()); // $("#submitForm").submit(); $.ajax({ url:'${path }/front/saveUserIcon', data:$("#submitForm").serialize(), type:'POST', success:function(data){ if(data.code==200){ //parent.parent.$("#myResumeLi").click(); parent.location.reload(); // 父页面刷新 var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 parent.layer.close(index); }else{ warningAlert(data.msg); } } }); return false; // var index = parent.layer.getFrameIndex(window.name); // parent.layer.close(index) //alert(roundedCanvas.toDataURL()); // Show 将图形转换成base64显示 //$result.html('<img src="' + roundedCanvas.toDataURL() + '">');}); $("#file").change(function(){ var fileName=$("#file").val(); fileName=fileName.toLowerCase(); if((fileName.indexOf(".jpg")!=-1)||(fileName.indexOf(".png")!=-1)||(fileName.indexOf(".jpeg")!=-1)||(fileName.indexOf(".bmp")!=-1)||(fileName.indexOf(".gif")!=-1)){ $("#imageUploadForm").submit(); }else{ alert("所选图片格式错误或者不支持此类图片格式!"); } return false; }); });</script></head><body><div class="container"><form enctype="multipart/form-data" method="post" id="imageUploadForm" action="${path}/front/imageUpload" ><span class="btn-upload"> <a href="javascript:void();" class="btn btn-primary radius"><i class="iconfont">
阅读全文
0 0
- 使用cropper.js裁剪头像
- cropper.js 实现HTML5 裁剪图片并上传(裁剪上传头像。)
- cropper.js 实现HTML5 裁剪图片并上传(裁剪上传头像。)
- SpringMVC用户头像上传裁剪Thumbnailator+cropper
- 基于Jquery/cropper插件的使用。头像截切/裁剪图片。
- django & cropper.js &bootstrap 实现头像截取并上传
- cropper.js 实现裁剪图片并上传(PC端)
- cropper.js 实现裁剪图片并上传(移动端)
- cropper.js HTML5 裁剪图片 canvas 转base64
- 基于cropper.js封装vue在线图片裁剪组件
- cropper js基于vue的图片裁剪上传功能。
- cropper.js 裁剪图片并上传(文档翻译+demo)
- cropper头像上传
- 利用Jquery的cropper插件实现拖动层动态头剪切(裁剪头像)图片
- 基于jQuery和cropper点击头像上传并预览裁剪图片
- jQuery.cropper裁剪
- Image Cropper 裁剪图片
- vue移动端裁剪图片结合插件Cropper的使用
- 开源安全问题不容忽视
- httpclient如何验证响应字段值是否为数字
- 算法导论 经典算法实现 quicksort
- Java实现调用百度AI开放云平台(人脸识别API)
- Android OpenGL入门
- 使用cropper.js裁剪头像
- 不要把一个对你好的人给弄丢了!
- Java类加载器总结
- unbuntu下利用adb连接安卓手机
- 决策树
- Servlet 生命周期、工作原理
- 重写log4j中mysqlappender
- Centos6.4 安装Spark Job Server详解
- Sed 命令详解 正则表达式元字符
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
显示下面没有了怎么办
手机变成空号怎么办
opp0手机声音小怎么办
opp0手机音量小怎么办
vivox20听筒声音小怎么办
0pp0r15声音小怎么办
oppoa77开不了机怎么办
0ppoA77t丢了怎么办
oppoa59s密码忘记了怎么办
oppo密码忘记了怎么办
vivo收不到短信怎么办
vivox9s密码忘了怎么办
.ppor9s照相在黑天怎么办
V!V0X9声音小怎么办
viv0手机声音小怎么办
手机声音小怎么办vivo
opr9网络屏幕锁怎么办
手机耗电快怎么办 vivo
手机打游戏卡顿怎么办
vivoy67手机很热怎么办
vivo电信手机信号差怎么办
vivo充电器松了怎么办
vivox6开不开机怎么办
vivoy67的信号弱怎么办
vivo手机太耗电怎么办
浏览器连不上网怎么办
有网网页打不开怎么办
vivox5m屏幕不亮怎么办
vivox7密码忘了怎么办
手机解不开锁怎么办 vivo
xplay5密码忘了怎么办
隐藏图标不能用怎么办?
vivox6太卡了怎么办
红外被异常遮挡怎么办
vivo通话声音小怎么办
办了卡店不开了怎么办
手机主板虚焊怎么办
vivo手机掉海里怎么办
vivox20黑色掉漆怎么办
苹果7磨砂黑掉漆怎么办
美图t8s黑屏怎么办