Java+Jcrop实现图片裁剪并保存到服务器

本文介绍了如何使用Java和Jcrop插件实现图片裁剪,并将裁剪后的图片保存到服务器。前端代码已在码云托管,后端采用Java8的decoder对象进行解码。在Tomcat的server.xml配置图片服务器,以便页面访问裁剪后的图片。
摘要由CSDN通过智能技术生成
  • 插件下载

官方Jcrop下载地址(可以不下,前端demo中包含)

  • 前端代码

前端代码较长,已放至码云

示例demo使用的是限制长宽比的图片选择方式,其它方式可以访问官网下载官方压缩包,里面有几个示例demo。

  • 后端代码

使用的解码方式是java8下decoder对象,java8以下请选择其它解码方式

@RequestMapping(value = "saveImg", method = RequestMethod.POST)
	public string saveImg(@RequestParam("imageSrc") String imageSrc) {
		BufferedOutputStream bos = null;
		try {
			// base64解码对象,使用util包下的
			final Base64.Decoder decoder = Base64.getDecoder();

			// 保存图片到本地目录
			String newFildId = UUID.randomUUID().toString() + ".png";
			File file = new File("D:/imgServer/" + newFildId);
			file.createNewFile();
			bos = new BufferedOutputStream(new FileOutputStream(file));
			
                        // 去掉头部信息并保存到图片文件中
                        bos.write(decoder.decode(imageSrc.replace("data:image/png;base64,", "")));
		} catch (IOException e) {
			e.printStackTrace();
			log.error(e.getMessage());
                        return "false";
		} finally {
			try {
				bos.close();
			} catch (IOException e) {
				e.printStackTrace();
                                return "false";
			}
		}

		return "success";
	}
  • 页面加载

     保存之后,页面使用img标签读取(【file:///图片路径】的形式可能无效,使用图片服务器的形式读取),步骤如下:

  1. 在tomcat的server.xml中加入以下语句(路径自行修改),创建图片服务器

<Context docBase="D:/imgServer" path="/imgServer" reloadable="true" />

(如果使用eclipse,需要在eclipse的server中修改,否则重启eclipse会覆盖掉)

     2.页面访问图片服务器

<img src="/imgServer/0.png">

  • 一些废话( ̄▽ ̄)~*

图片的base64编码可以不解码(也不要将头部信息去掉)直接保存到数据库中,页面展示时将base64编码直接赋值给img的src属性应该也可以(未尝试)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值