vue-cropperは画像を切り取って圧縮してアップロードします
vue-cropperアップロード後にfileファイルを返すが画像が大きすぎるという問題がよく発生するのでアップロード後にlocalResizeIMGを使用して圧縮する第一歩:localResizeIMGのインストール
ステップ2:該当する場所に導入
ステップ3:圧縮
npm i lrz -S
ステップ2:該当する場所に導入
import lrz from 'lrz'
ステップ3:圧縮
this.imgUrl = URL.createObjectURL(file, {
quality: 0 })
let quality = 1
//
if (file.size >= 1024 * 1024 && file.size < 1024 * 1024 * 5) {
quality = 0.8
} else if (file.size < 1024 * 1024) {
quality = 1
} else {
quality = 0.5
}
console.log('quality', quality)
const imgSrc = window.URL.createObjectURL(file)
let img = new Image()
img.src = imgSrc
let _this = this // onload this
console.log(img)
img.onload = function() {
// img.width 、img.height
console.log(img.width)
const width = img.width > 1200 ? 1200 : img.width // ,
_this.upload(width, quality)
lrz(_this.imgUrl, {
width: width, quality: quality }).then(rst => {
// rst.fileLen ,rst.file
_this.after = rst.fileLen / 1024
console.log('this.after', quality, _this.after)
//
})
}