用Vue如何实现图片裁剪功能?一文带你了解Vue的图片裁剪组件
Admin 2021-09-10 群英技术资讯 991 次浏览
今天给大家分享的是用Vue如何实现图片裁剪功能的内容,本文会使用到Vue图片裁剪组件,该组件是基于vue-cropper二次封装,接下来我们来具体看看vue实现图片裁剪功能的示例。
示例:
安装插件
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了小程序实现自定义多层级单选和多选,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
目录背景效果实现HTML 页面结构???? feTurbulence 和 feDisplacementMapCSS 样式???? mask-imageJavaScript 方法① 绘制热点图② 生成动画③ 清除画布④ 切换图片总结声明:本文涉及图文和模型素材仅用于个人学习、研究和欣赏,请勿二次修改、非法传播、转载、出版、商用、及进
这篇文章主要为大家详细介绍了JavaScript实现简单计算器小功能,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,大家可以在本篇实例中查缺补漏,提升水平
微信小程序制作签到页面效果的代码是什么,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
JavaScript实现网页带动画返回顶部的方法详解 服务器由阿里云换到了腾讯云,我的代码之前一直都是托管在git上的,但是搬家的时候,可能是着急了,之前有些新加的文件没有托管到git上,所以,就丢了. 不过无所谓了,可以重新写嘛. 之前博客的回到顶部功能是请之前的一位前端的同事帮忙写的,这次打算自己尝试一下. 返回顶部无非就是锚点. 第一个版本: <body style="height:2000px;"> <div id="topAnchor"></div> <a ...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008