使用vue-cropper裁剪正方形上传头像

简介: 引用方式在组件内使用import { VueCropper } from 'vue-cropper' components: { VueCropper,},main.js里面使用import VueCropper from 'vue-cropper' Vue.

引用方式

  • 在组件内使用

    import { VueCropper }  from 'vue-cropper' 
    components: {
      VueCropper,
    },
  • main.js里面使用

    import VueCropper from 'vue-cropper' 
    Vue.use(VueCropper)
  • 基本使用方法

    <vueCropper
      ref="cropper"
      :img="option.img"
      :autoCrop="true"
      :fixedNumber="[1,1]"
      :fixed="true"
    ></vueCropper>

    选择图片后需要传这个图片的地址给vueCropper,所以本地选择图片后要处理一下,得到base64地址

changeUpload(file) {
    var that = this
    console.log(file)
    that.file = file
    var reader = new FileReader() // 这里使用FileReader() 来得到图片地址
    reader.onload = function(e) {
        that.option.img = e.target.result
    }
    reader.readAsDataURL(file.raw)
},

当点击保存裁剪的时候调用组件的方法getCropBlob会得到blob类型的数据,我用的七牛上传图片,需要file类型的图片数据,所以这里要做转化,代码如下

this.$refs.cropper.getCropBlob((data) => {
    console.log(data)
    let files = new window.File([data], this.file.name, {type: data.type})
    console.log(this.file)
    Upload(files, this.file.name, (res) => {
        let url = `http://pv4kob423.bkt.clouddn.com/${res.key}`
        console.log(res)
        that.update(url) // 拿到url后去修改用户头像
    })
})

所以prop功能

名称 功能 默认值 可选值
img 裁剪图片的地址 url 地址、base64、blob
outputSize 裁剪生成图片的质量 1 0.1 - 1
outputType 裁剪生成图片的格式 jpg (jpg 需要传入jpeg) jpeg png webp
info 裁剪框的大小信息 true true false
canScale 图片是否允许滚轮缩放 true true false
autoCrop 是否默认生成截图框 false true false
autoCropWidth 默认生成截图框宽度 容器的80% 0~max
autoCropHeight 默认生成截图框高度 容器的80% 0~max
fixed 是否开启截图框宽高固定比例 true truefalse
fixedNumber 截图框的宽高比例 [1, 1] [宽度, 高度]
full 是否输出原图比例的截图 false true false
fixedBox 固定截图框大小 不允许改变 false true false
canMove 上传图片是否可以移动 true true false
canMoveBox 截图框能否拖动 true truefalse
original 上传图片按照原始比例渲染 false true false
centerBox 截图框是否被限制在图片里面 false true false
high 是否按照设备的dpr 输出等比例图片 true true false
infoTrue true 为展示真实输出图片宽高 false 展示看到的截图框宽高 false true false
maxImgSize 限制图片最大宽度和高度 2000 0-max
enlarge 图片根据截图框输出比例倍数 1 0-max(建议不要太大不然会卡死的呢)
mode 图片默认渲染方式 contain contain , cover, 100px, 100% auto标题1 标题2 标题3
内置方法 通过this.$refs.cropper 调用
this.$refs.cropper.startCrop() 开始截图
this.$refs.cropper.stopCrop() 停止截图
this.$refs.cropper.clearCrop() 清除截图
this.$refs.cropper.changeScale() 修改图片大小 正数为变大 负数变小
this.$refs.cropper.getImgAxis() 获取图片基于容器的坐标点
this.$refs.cropper.getCropAxis() 获取截图框基于容器的坐标点
this.$refs.cropper.goAutoCrop 自动生成截图框函数
this.$refs.cropper.rotateRight() 向右边旋转90度
this.$refs.cropper.rotateLeft() 向左边旋转90度
相关文章
|
Ubuntu 网络安全 Docker
|
7月前
|
缓存 运维 监控
接口最大并发量测试工具对比与最佳实践方案
文章聚焦接口最大并发量测试,阐述其是保障系统稳定与性能的关键。介绍主流测试工具分SaaS化平台、开源工具和私有化部署方案,分析各方案特点、适用场景及优缺点。还给出工具选型建议,以及接口并发量测试的最佳实践流程,解答常见问题。
|
9月前
|
前端开发 大数据 Java
城管综合执法办案系统的技术体系解析:从移动端到云端
城管综合执法办案系统融合云计算、大数据、AI等技术,实现执法流程智能化、移动化。涵盖案件管理、电子取证、数据协同与可视化分析,提升执法效率与规范化水平。
558 0
|
缓存 API 开发工具
Qwen-coder方向-如果从0开始应用通义千问开源大模型
从0开始接触,带您全面了解Qwen2.5语言模型家族,包括其核心功能、微调方法以及具体应用场景。我们将通过一系列精心准备的应用demo和使用指南,帮助您掌握如何充分利用Qwen2.5的强大能力
2306 8
|
Kubernetes 监控 调度
k8s学习--kubernetes服务自动伸缩之垂直伸缩(资源伸缩)VPA详细解释与安装
k8s学习--kubernetes服务自动伸缩之垂直伸缩(资源伸缩)VPA详细解释与安装
1050 2
|
负载均衡 Java 数据安全/隐私保护
网关路由-路由属性
网关路由-路由属性
398 1
|
JSON Linux 网络安全
curl 使用及调用url时带有&符号被截断解决
curl 使用及调用url时带有&符号被截断解决
1341 0
|
前端开发 UED
【专栏:HTML与CSS实战项目篇】创建一个具有复杂布局的电商详情页
【4月更文挑战第30天】构建复杂布局的电商详情页涉及页面结构规划、样式设计和交互效果实现。首先规划顶部导航栏、商品图片展示区、商品信息区、用户评价区和相关商品推荐区。在样式设计上,注重色彩搭配、字体选择、布局与间距及图片处理。交互效果包括图片放大、添加到购物车按钮、滚动监听和评论互动,以提升用户体验。实际开发中需考虑跨设备兼容性和用户体验优化。
568 5
uni-app只执行一次事件
uni-app只执行一次事件
616 3
|
SQL Oracle 关系型数据库
MySql基础一之【了解MySql与DBeaver操作MySql】
MySql基础一之【了解MySql与DBeaver操作MySql】
647 0