vue图片裁剪组件的用法是什么?
Admin 2021-09-24 群英技术资讯 1220 次浏览
今天给大家分享的是关于vue图片裁剪组件的内容,下文对vue图片裁剪组件的使用有详细的介绍及示例代码,有需要的朋友可以参考。本文介绍的组件是基于vue-cropper二次封装,接下来我们一起了解看看。
示例:

tip: 该组件基于vue-cropper二次封装
安装插件
npm install vue-cropper yarn add vue-cropper
写入封装的组件
<!-- 简易图片裁剪组件 --- 二次封装 -->
<!-- 更多api https://github.com/xyxiao001/vue-cropper -->
<!-- 使用:传入图片 比例 显示隐藏。方法:监听底部按钮点击即可 ---更多props查询文档自行添加 -->
<template>
<div v-if="value" :value="value" @input="val => $emit('input', val)" class="conbox">
<div class="info">
<vueCropper
ref="cropper"
:img="img"
:outputSize="outputSize"
:outputType="outputType"
:info="info"
:canScale="canScale"
:autoCrop="autoCrop"
:fixed="fixed"
:fixedNumber="fixedNumber"
:full="full"
:fixedBox="fixedBox"
:canMove="canMove"
:canMoveBox="canMoveBox"
:original="original"
:centerBox="centerBox"
:infoTrue="infoTrue"
:mode="mode"
></vueCropper>
</div>
<div class="btns">
<div @click="clickCancelCut" class="cancel">取消</div>
<img @click="clickRotate" src="../../assets/paradise/rotate.png" alt="" />
<div @click="clickOk" class="okey">确定</div>
</div>
</div>
</template>
<script>
import { VueCropper } from 'vue-cropper';
export default {
name: 'PictureCropping',
components: { VueCropper },
props: {
value: {
type: Boolean,
default: false,
},
//裁剪图片的地址
img: {
type: String,
default: '',
},
//截图框的宽高比例
fixedNumber: {
type: Array,
default: () => {
return [1, 1];
},
},
},
data() {
return {
// 裁剪组件的基础配置option
// img: this.img, // 裁剪图片的地址
outputSize: 1, // 裁剪生成图片的质量
outputType: 'jpeg', // 裁剪生成图片的格式
info: true, // 裁剪框的大小信息
canScale: true, // 图片是否允许滚轮缩放
autoCrop: true, // 是否默认生成截图框
// autoCropWidth: 300, // 默认生成截图框宽度
// autoCropHeight: 200, // 默认生成截图框高度
fixed: true, // 是否开启截图框宽高固定比例
// fixedNumber: this.fixedNumber, // 截图框的宽高比例
full: true, // 是否输出原图比例的截图
fixedBox: true, // 固定截图框大小 不允许改变
canMove: true, //上传图片是否可以移动
canMoveBox: true, // 截图框能否拖动
original: false, // 上传图片按照原始比例渲染
centerBox: true, // 截图框是否被限制在图片里面
// high:true,// 是否按照设备的dpr 输出等比例图片
infoTrue: true, // true 为展示真实输出图片宽高 false 展示看到的截图框宽高
// maxImgSize: 2000, //限制图片最大宽度和高度
// enlarge: 1, //图片根据截图框输出比例倍数
mode: 'contain', //图片默认渲染方式
};
},
computed: {},
watch: {},
//生命周期 - 创建完成(访问当前this实例)
created() {},
//生命周期 - 挂载完成(访问DOM元素)
mounted() {},
methods: {
clickCancelCut() {
this.$emit('clickCancelCut', '点击取消');
this.$refs.cropper.stopCrop();
this.$refs.cropper.clearCrop();
},
clickRotate() {
this.$refs.cropper.rotateRight();
this.$emit('clickRotate', '点击旋转');
},
clickOk() {
//输出裁剪的base64
this.$refs.cropper.getCropData(data => {
this.$emit('clickOk', data);
this.$refs.cropper.stopCrop();
this.$refs.cropper.clearCrop();
});
},
},
};
</script>
<style lang='less' scoped>
/* @import url(); 引入css类 */
.conbox {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
box-sizing: border-box;
height: 100vh;
width: 100%;
background-color: #000;
display: flex;
flex-direction: column;
justify-content: center;
.info {
width: auto;
height: 800px;
.vue-cropper {
background-image: none;
background-color: #000;
}
}
.btns {
padding: 0 20px;
color: #fff;
text-align: center;
display: flex;
justify-content: space-between;
align-items: center;
position: absolute;
left: 0;
right: 0;
bottom: 15px;
img {
width: 85px;
height: 85px;
}
.cancel {
background-color: #606465;
padding: 15px 20px;
width: 100px;
border-radius: 10px;
}
.okey {
background-color: #df6457;
padding: 15px 20px;
width: 100px;
border-radius: 10px;
}
}
}
</style>
关于vue图片裁剪组件的使用就介绍到这,上述实例代码对帮助大家学习和理解vue图片裁剪组件的使用有一定的借鉴参考价值,感兴趣的朋友可以了解看看,想要了解更多vue组件的使用,大家可以关注群英网络其它相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍如何实现vue打开新窗口并传参,实现的具体功能就是打开一个新的窗口展示页面,同时需要传参数,但是参数不能显示在地址栏,而且刷新页面后,传的参数不会丢失。下面通过图文形式给大家分享一下如实现上述操作。
图片幻灯片是网页开发中的一个常见效果,可以用来展示商品广告,展示网站其他活动页面等等,这篇文章主要展示如何用原生JavaScript来实现一个简单的幻灯片。其效果为通过移动鼠标到相应的链接,下方同时展示对应的图片预留,以下是具体的代码。
这篇文章主要为大家详细介绍了js点击按钮实现图片排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
JS怎样实现一个网页音乐播放器功能?之前我们了解了用vue.js实现简单的播放器,今天我们来用JavaScript来实现更复杂一些的功能的音乐播放器,实现步骤、代码及效果如下,感兴趣的朋友可以了解看看。
Typescript中extends关键字的基本使用 目录 前言 基本使用 泛型约束 条件类型与高阶类型 在高级类型中的应用 参考文献 总结 前言 extends关键字在TS编程中出现的频率挺高的,而且不同场景下代表的含义不一样,特此总结一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008