前端上传图片前调整裁切1
yarn add cropperjs
import 'cropperjs/dist/cropper.css'
import Cropper from 'cropperjs'
插件的初始化
let cropper = ref(null)
const init = () => {
cropper.value = new Cropper(imageRef.value, {
viewMode: 1,
dragMode: 'move',
aspectRatio: 1,
autoCropArea: 1,
cropBoxMovable: false,
cropBoxResizable: false,
background: false
})
}
将用户选择的图片显示出来, 并初始化插件
const handleChange = (file) => {
const url = URL.createObjectURL(file.target.files[0])
imgSrc.value = url
nextTick(() => {
init()
})
}
裁切完毕的上传操作
const ok = () => {
cropper.value.getCroppedCanvas().toBlob(async blob => {
let file = new File([blob], "test.jpg", { type: blob.type })
const data = new FormData()
data.append('avatar', file)
const { data: { data: res } } = await axios({
url: 'http://ajax-api.itheima.net/api/file',
method: 'post',
data
})
console.log(res.url)
})
}
GitHub - fengyuanchen/cropperjs: JavaScript image cropper.