最近项目需要头像裁剪的功能,在网上找了一下,发现了github上的cropper项目还不错,借鉴了一下。。用起来挺简单的,下面是我做的一个小例子:
开始先放个成品图:
下面给出前后端的代码
前端页面是一个单独的jsp页面,用来做弹出层来裁剪图片比较好。
关于jsp页面引用的两个关于cropper的 文件,我就不提供了。大家需要的可以去官方的github上去下载。
地址:https://github.com/fengyuanchen/cropper
<%@ 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" rel="external nofollow" > <script src="/UploadFiles/2021-04-02/cropper.js">snippet_file_0.txt
下面是我后台处理方法,大家可以借鉴一下。后台是ssm框架,主要是保存图片和图片转码
//用户上传头像 /** * * @param image 选择的图片 * @param model * @param userId 用户id * @param userType 用户类型 * @param request * @param originalImage 上一张临时图片 * @return */ @RequestMapping(value="/imageUpload",method=RequestMethod.POST) public String iconImageUpload(@RequestParam(value="file",required=false)MultipartFile image,Model model,@CookieValue("userId")String userId,HttpServletRequest request,String originalImage){ String basePath="image/"; //web.xml里面配置的用户图片存储路径 String userImagePath=request.getSession().getServletContext().getInitParameter("userImageSavePath"); //图片相对路径 String imageRelativePath=FileUtils.fileUpload(image, request,basePath+userImagePath); System.out.println("图片保存路径------"+imageRelativePath); System.out.println("上一张临时图片------"+originalImage); //删除上一张临时图片 if(originalImage!=null){ String basePathTemp=request.getSession().getServletContext().getRealPath("/"); FileUtils.deleteFile(basePathTemp+originalImage); } model.addAttribute("imageRelativePath", imageRelativePath); model.addAttribute("userId", userId); return "/crop_image"; } //将裁剪好的头像由base64还原成图片 @ResponseBody @RequestMapping(value="/saveUserIcon",method=RequestMethod.POST) public Msg saveUserIcon(String icon,@CookieValue("userType")String userType,@CookieValue("userId")String userId,String originalImage,HttpServletRequest request){ System.out.println("icon-----"+icon); //先生成图片地址 String realpath=request.getSession().getServletContext().getRealPath("/"); String basePath="image/"; String userImagePath=request.getSession().getServletContext().getInitParameter("userImageSavePath"); Calendar now=Calendar.getInstance(); String relativePath=basePath+userImagePath+"/"+now.get(Calendar.YEAR)+"/"+(now.get(Calendar.MONTH)+1)+"/"+now.get(Calendar.DAY_OF_MONTH)+"/"+FileUtils.getUUID()+".png"; String imagePath=realpath+relativePath; //将base64 转换成图片 FileUtils.base64ToImage(icon, imagePath); //删除原图 if(originalImage!=null){ FileUtils.deleteFile(realpath+originalImage); } return Msg.success(); } //下面是解码的方法 public static boolean base64ToImage(String base64, String path) {// 对字节数组字符串进行Base64解码并生成图片 if (base64 == null){ // 图像数据为空 return false; } System.out.println(base64); // base64 的格式为 “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了 base64=base64.split(",")[1]; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解码 byte[] bytes = decoder.decodeBuffer(base64); for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 调整异常数据 bytes[i] += 256; } } // 生成图片 OutputStream out = new FileOutputStream(path); out.write(bytes); out.flush(); out.close(); return true; } catch (Exception e) { return false; } }总结
以上所述是小编给大家介绍的使用cropper.js裁剪头像的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月28日
2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]