1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vue 移动端头像裁剪_使用vue-cropper裁剪正方形上传头像-阿里云开发者社区

vue 移动端头像裁剪_使用vue-cropper裁剪正方形上传头像-阿里云开发者社区

时间:2021-02-14 14:59:33

相关推荐

vue 移动端头像裁剪_使用vue-cropper裁剪正方形上传头像-阿里云开发者社区

引用方式

在组件内使用

import { VueCropper } from 'vue-cropper'

components: {

VueCropper,

},

main.js里面使用

import VueCropper from 'vue-cropper'

Vue.use(VueCropper)

基本使用方法

ref="cropper"

:img="option.img"

:autoCrop="true"

:fixedNumber="[1,1]"

:fixed="true"

>

选择图片后需要传这个图片的地址给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./${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度

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。