cropperjs裁剪后图片变大的问题

9 篇文章 0 订阅
1 篇文章 0 订阅

在图片裁剪之后,100kb的图片变成1.2mb,生成blob对象的时候默认是生成高质量的png,这里把png改成jpeg就可以了(我试了一下jpg也不行)

   this.cropper.getCroppedCanvas().toBlob(async (blob) => {
        try {
          const formData = new FormData()
          const nameImg = new Date().getTime() + '.jpeg'
          formData.append('file', blob, nameImg)
          console.log(formData)
          await uploadAvatar(formData)
          this.$emit('update-avatar')
          this.$emit('close')
          this.$toast('Sửa đổi thành công!')
        } catch (error) {
          this.$emit('close')
          this.$toast('Chỉnh sửa thất bại')
        }
      }, 'image/jpeg')

 后来改了过后发现图片还是比原先大了近一倍,后来发现没指定画布的大小,添加过后返回的图片大小明显比原图还小了不少

 

    const image = this.$refs.img
    this.cropper = new Cropper(image, {
      viewMode: 1,
      dragMode: 'move',
      aspectRatio: 1,
      autoCropArea: 1,
      cropBoxMovable: false,
      cropBoxResizable: false,
      background: false,
      width: 236, // 输出画布的目标宽度
      height: 236, // 输出画布的目标高度。
      minWidth: 236, // 输出画布的最小目标宽度,默认值为0。
      minHeight: 236, // 输出画布的最小目标高度,默认值为0。
      maxWidth: 236, // 输出画布的最大目标宽度,默认值为Infinity(无穷大)。
      maxHeight: 236 // 输出画布的最大目标高度,默认值为Infinity(无穷大)。
    })

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cropperjs是一个基于JavaScript的图片裁剪工具,它可以让你在浏览器中对图片进行裁剪、缩放和旋转等操作。在Vue3中使用cropperjs进行图片裁剪,可以通过以下步骤实现: 1. 安装cropperjsvue-cropperjs 通过npm或yarn安装cropperjsvue-cropperjs: ```bash npm install cropperjs vue-cropperjs --save ``` 2. 在Vue3组件中引入vue-cropperjs 在你需要使用cropperjsVue3组件中,引入vue-cropperjs: ```javascript import VueCropper from 'vue-cropperjs'; import 'cropperjs/dist/cropper.css'; export default { components: { VueCropper, }, data() { return { image: '', cropper: null, }; }, methods: { // 初始化cropper initCropper() { this.cropper = new Cropper(this.$refs.image, { aspectRatio: 1 / 1, // 裁剪框宽高比 viewMode: 1, // 裁剪框是否可以超出图片边界 }); }, // 获取裁剪后的图片 getCroppedImage() { const canvas = this.cropper.getCroppedCanvas(); const croppedImage = canvas.toDataURL('image/png'); console.log(croppedImage); }, }, mounted() { this.initCropper(); }, beforeDestroy() { this.cropper.destroy(); }, }; ``` 3. 在模板中渲染图片裁剪框 在模板中,渲染图片裁剪框: ```html <template> <div> <img ref="image" :src="image" /> <vue-cropper ref="cropper"></vue-cropper> <button @click="getCroppedImage">裁剪图片</button> </div> </template> ``` 4. 实现裁剪功能 在Vue3组件的methods中实现裁剪功能,例如getCroppedImage方法: ```javascript // 获取裁剪后的图片 getCroppedImage() { const canvas = this.cropper.getCroppedCanvas(); const croppedImage = canvas.toDataURL('image/png'); console.log(croppedImage); }, ``` 通过以上四个步骤,在Vue3中就可以使用cropperjs进行图片裁剪了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值