vue+cropperjs插件,实现图片裁剪功能——PC端+移动端——技能提升

发现了一个图片裁剪的插件cropperjs,这个插件非常的强大,能够实现多种功能:

可以对指定的图片进行裁剪,可以自己选择裁剪的交互方式,如大小、纵横比等

还可以预览裁剪区域,确认裁剪后可以生成一个包含裁剪图的canvas对象,借助 canvastoDataURL 方法可以生成一张 Base64 格式的图片。

还有另外一种不使用 canvas 的方式,利用该工具丰富的 api 可以拿到裁剪区域 相对于 原图的各项数据,使用这些数据进行css绝对定位即可展示裁剪后的图,该方式可以保证图片不失真和完整。

大神使用cropperjs的链接:https://www.cnblogs.com/eightFlying/p/cropper-demo.html

cropperjs官网:https://fengyuanchen.github.io/cropper/

此篇文章只简单介绍一下等比例的裁剪功能及使用步骤。

1.安装cropperjs插件

npm install cropperjs --save-dev

安装完插件后,由于此插件并非很多页面都要用到,因此可以不在main.js主入口文件中全局引入,可以在需要使用图片裁剪功能的地方单独引入即可。

2.template部分代码

页面部分,有个原图部分+裁剪按钮+裁剪区域+裁剪后的图片部分。

<div class="before"></div>
<el-button @click="sureSava">裁剪</el-button>
<div class="container">
  <div class="img-container">
    <img src="@/assets/401_images/401.gif" ref="image" alt="" />
  </div>
  <div class="afterCropper">
    <img :src="afterImg" alt="" />
  </div>
</div>

3.js部分代码

import Cropper from "cropperjs";
import "cropperjs/dist/cropper.css";
export default{
	data(){
		return{
			 myCropper: null,
      		 afterImg: "",
		}
	},
	created(){
		this.$nextTick(()=>{
			this.init();
		})
	},
	methods:{
		init(){
			this.myCropper = new Cropper(this.$refs.image,{
				viewMode:1,
				dragNode:'none',
				initialAspectRatio:1,
				aspectRatio:1,
				preview:'.before',
				background: false,
		        autoCropArea: 0.6,
		        zoomOnWheel: false
			})
		},
		sureSava(){
			this.afterImg = this.myCropper.getCroppedCanvas({
				imageSmoothingQuality:'high'
			}).toDataURL('image/jpeg');
		}
	}
}

4.css部分 

.container{
  display: flex;
}
.before{
  width: 100px;
  height: 100px;
  overflow: hidden;
  /* 这个属性可以得到想要的效果 */
}
.img-container{
  height: 400px;
  overflow: hidden;
}
.afterCropper{
  flex: 1;
  margin-left: 20px;
  border: 1px solid salmon; 
  text-align: center;
}
.afterCropper img{
  width: 150px;
  margin-top: 30px;
}

5.最终效果图

在这里插入图片描述

附录一个超级详细的使用参数说明:大神就是大神,生活中处处都是大神。

大神提供的cropperjs的参数详细说明:https://blog.csdn.net/achejq/article/details/93240104

完成!!!

### 回答1: cropperjs是一个基于JavaScript的图像裁剪插件,而Angular是一个用于构建Web应用程序的JavaScript框架。它们可以结合使用,以在Angular应用程序中实现图像裁剪功能。 要在Angular应用程序中使用cropperjs插件,首先需要在项目中安装cropperjs库。可以使用npm或yarn来安装cropperjs,然后将其引入到Angular组件中。 在Angular组件中,可以通过实例化cropperjs对象并将其应用于图像元素来实现图像裁剪。可以通过在HTML模板中添加一个图像元素,并给它一个唯一的ID,然后在组件中使用如下代码来初始化cropperjs: ``` import { Component, ElementRef, ViewChild } from '@angular/core'; import Cropper from 'cropperjs'; @Component({ selector: 'app-cropper', templateUrl: './cropper.component.html', styleUrls: ['./cropper.component.css'] }) export class CropperComponent { @ViewChild('image', {static: true}) imageElement: ElementRef; ngAfterViewInit() { const image = this.imageElement.nativeElement; const cropper = new Cropper(image, { // 设置裁剪参数 }); } } ``` 在上面的代码中,通过@ViewChild装饰器来获取HTML模板中的图像元素,并在ngAfterViewInit生命周期钩子中进行cropperjs的初始化。可以根据需要设置裁剪的参数,比如裁剪框尺寸、裁剪比例等等。 另外,可以通过调用cropper对象的方法来实现不同的操作,比如获取裁剪后的图像数据、旋转图像、放大缩小等等。 最后,将cropperjs与Angular的其他功能结合使用,可以实现更复杂的图像裁剪交互,比如上传裁剪后的图像、实时预览等等。这样,就可以在Angular应用程序中方便地实现图像裁剪功能。 ### 回答2: cropperjs是一个基于JavaScript的图像裁剪库,而Angular是一种流行的前端开发框架。 cropperjs可以与Angular结合使用,以实现在Angular应用中对图像进行裁剪功能。我们可以使用Angular的指令或组件来包装cropperjs,并在Angular应用中使用它。 要在Angular中使用cropperjs,首先需要将cropperjs库引入到项目中。可以通过npm安装cropperjs,并在Angular应用的代码中导入cropperjs库。 接下来,可以创建一个包装cropperjs的指令或组件。这个指令或组件负责处理与cropperjs相关的逻辑,例如初始化cropperjs实例、设置裁剪参数、监听裁剪事件等。 在指令或组件的模板中,可以使用一个图像元素作为cropperjs的容器,并绑定cropperjs实例的一些属性和方法。通过这种方式,我们可以实现图像的裁剪效果,并根据需要获取裁剪后的图像数据或触发一些自定义逻辑。 最后,我们可以在Angular应用的其他组件中使用cropperjs指令或组件,将图像裁剪功能添加到具体的页面或视图中。 总之,通过将cropperjs与Angular结合使用,我们可以方便地在Angular应用中实现图像裁剪功能,并与其他组件或服务进行集成。这样可以提高开发效率,同时为用户提供更好的图像处理体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值