前端图片裁剪cropper.js

背景:我们在项目中常常都会有更换登陆人头像的需求,这个很简单直接上传一张图片展示就可以了,但是如果上传的图片需要剪裁成正方形的话就需要我们来做一些特殊的处理;

这里我们会用到一个图片剪裁插件:cropper.js

github地址:https://github.com/fengyuanchen/cropperjs
在github中有插件初始化的代码大家按部就班到自己的项目中,先实现初始化看看样子;
我这里针对于cropper.js插件做一些特殊的配置,实现正方形裁切;
代码:

const image = this.$refs.img //获取图片元素
const cropper = new Cropper(image,{
      viewMode: 1, //裁切框的位置,0可以选择图片外,1只能在图片内
      dragMode: 'move',  //拖动方式,crop、move、none
      aspectRatio: 1,  //截取的比例
      autoCropArea: 1, //撑满画布
      cropBoxMovable: false, //截取框不可移动
      corpBoxResizable: false, //截取框缩放功能
      background: false, //背景
      movable: true //画布是否可以移动
    })

裁切后的图片如何处理?下面有两种方式。
代码:

//一种是基于服务端进行裁切getData 方法获取裁切参数,(兼容性好)
// console.log(this.cropper.getData())

//纯客户端的裁切使用getCroppedCanvas 获取裁切的文件对象(低版本的ie不支持)
this.cropper.getCroppedCanvas().toBlob(blob => {
	const formData = new FormData()
	formData.append('photo',blob)
	//直接把formData发送个后端接口就可以了	
})

然后接口请求成功会返回一个http地址的图片,然后我们把头像图片替换就可以了;
这样就实现了更换头像裁切的功能;

工作之余 用博客记录自己 希望有能帮助到各位看官
如有错误或不全面的地方望各位能提点一二和留下宝贵意见

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cropper.js 是一个用于图片裁剪的 JavaScript 库。它可以用于在前端实现用户自定义的图片裁剪功能。以下是使用 Cropper.js 的基本步骤: 1. 引入 Cropper.js 相关文件。在 HTML 页面中,通过 `<script>` 标签引入 Cropper.js 库文件和样式文件: ```html <link rel="stylesheet" href="path/to/cropper.css"> <script src="path/to/cropper.js"></script> ``` 2. 创建一个 `<img>` 元素,用于显示待裁剪图片: ```html <img id="image" src="path/to/image.jpg"> ``` 3. 初始化 Cropper.js。在 JavaScript 中,找到该 `<img>` 元素,并使用 `new Cropper(element, options)` 初始化 Cropper.js 的实例。`element` 参数是需要进行裁剪的 `<img>` 元素,`options` 参数是一个对象,用于配置裁剪的各种行为和样式: ```javascript var image = document.getElementById('image'); var cropper = new Cropper(image, { // 配置参数 }); ``` 4. 可选:配置 Cropper.js 的参数。可以根据需要配置 Cropper.js 的各种参数,例如裁剪框的大小、裁剪比例、裁剪结果的输出等。具体的参数配置可以参考 Cropper.js 的官方文档。 5. 获取裁剪结果。使用 `cropper.getCroppedCanvas()` 方法获取裁剪后的图像内容,并进行进一步的处理,比如上传到服务器或显示在页面上: ```javascript var croppedCanvas = cropper.getCroppedCanvas(); // 对裁剪结果进行处理 ``` 6. 销毁 Cropper.js 实例。在不需要使用 Cropper.js 时,可以使用 `cropper.destroy()` 方法销毁实例,释放资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值