使用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度
相关文章
|
3月前
|
前端开发 JavaScript 数据可视化
推荐! 使用react-cropper-pro实现图片裁切压缩上传
推荐! 使用react-cropper-pro实现图片裁切压缩上传
68 0
|
5月前
|
前端开发 JavaScript 数据安全/隐私保护
VUE3(四十)使用canvas给图片添加水印~
VUE3(四十)使用canvas给图片添加水印~
134 0
|
5月前
|
JavaScript API
Vue使用vue-3d-model组件预览3D三维文件、立体文件,支持旋转、自动播放
Vue使用vue-3d-model组件预览3D三维文件、立体文件,支持旋转、自动播放
|
6月前
|
前端开发 JavaScript Java
基于cropper.js的图片上传和裁剪
基于cropper.js的图片上传和裁剪
117 0
|
前端开发
react-antd中使用Upload实现图片裁剪-上传-预览的功能
使用react中antd实现图片的上传裁剪和预览,记录一下实现过程,希望能对大家有帮助
813 0
react-antd中使用Upload实现图片裁剪-上传-预览的功能
|
存储 缓存 前端开发
Antd Upload + React-Cropper 实现图片自定义区域剪裁并上传功能
通过Upload组件结合react-Cropper实现图片的裁剪上传组件封装,剖析antd-img-crop源码实现的逻辑,对自己封装的组件进行进一步优化,改造!
4080 0
Antd Upload + React-Cropper 实现图片自定义区域剪裁并上传功能
|
6月前
|
Web App开发 JavaScript 前端开发
Vue上传图片裁剪预览插件vue-img-cutter的使用
Vue上传图片裁剪预览插件vue-img-cutter的使用
169 0
|
5月前
|
JavaScript 前端开发
vue图片预览 90度旋转
vue图片预览 90度旋转
107 0
|
6月前
|
JavaScript 前端开发
图片预览放大js插件
图片预览放大js插件
32 0
|
8月前
|
JavaScript 前端开发 算法
vue上传图片并修改png图片颜色
当涉及到在 Vue 中上传图片并修改 PNG 图片的颜色时,这个任务涵盖了文件上传、图像处理、Canvas 操作等多个方面 在现代 Web 开发中,图片的处理是常见的需求之一。本文将带您深入探讨如何使用 Vue.js 来实现图片上传,并在客户端使用 Canvas 来修改 PNG 图片的颜色。
130 0
vue上传图片并修改png图片颜色