富文本编辑器和图片压缩问题

粘贴图片

//粘贴图片
 let quill = this.$refs.myVueEditor.quill
    this.$forceUpdate()
    quill.root.addEventListener('paste', evt => {
      if (evt.clipboardData && evt.clipboardData.files && evt.clipboardData.files.length) {
        evt.preventDefault();
        [].forEach.call(evt.clipboardData.files, file => {
          if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) {
            return
          }
          var range = quill.selection.savedRange.index+1 || 0
          this.$emit("putImage", file, quill, range);   //拿到file之后对文件进上传服务器
        })
      }
    }, false)

富文本粘贴word文字样式清除

//富文本粘贴word文字样式清除
this.editor.customConfig.pasteTextHandle = function (content) {
          // content 即粘贴过来的内容(html 或 纯文本),可进行自定义处理然后返回
          if (content == '' && !content) return ''
          var str = content
          str = str.replace(/<xml>[\s\S]*?<\/xml>/ig, '')
          str = str.replace(/<style>[\s\S]*?<\/style>/ig, '')
          str = str.replace(/<\/?[^>]*>/g, '')
          str = str.replace(/[ | ]*\n/g, '\n')
          str = str.replace(/ /ig, '')
          console.log('****', content)
          console.log('****', str)
          return str
        }

图片压缩


 PngGoImg( a ) {
  let e = a.name.substring( a.name.length - 4 )
  if (  e.toLowerCase() === '.png' ) {
    let b = a.name.substring( 0, a.name.length - 4 )
    let c = b + '.jpg'
    let d = new File( [ a ], c, {
      type: a.type,
      lastModified: Date.now(),
    } )
    return d
  } else {
    return a
  }

通过上面代码将文件转化成 .jpg
因为浏览器对png的图片压缩不友好,所以要转化成.jpg

import * as imageConversion from 'image-conversion';

引入 image-conversion 插件 对图片进行压缩处理,可以压缩比例也可以压缩到某个大小
具体操作,文档如下:
https://www.jianshu.com/p/53d4f2b34d54?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=weixin

let files = file.PngGoImg(imgfile)
      //判断其是否为图片,不是图片则不执行图片压缩
       return new Promise((resolve, reject) => {
          //异步回调的方式将图片的file流及图片的压缩比传进组件内部
        imageConversion.compressAccurately(files, file.ImgCompress(files.size)).then((res) => {
          res = new File([res], files.name, {
            type: res.type,
            lastModified: Date.now(),
          })
          //请进行您的操作
      //res就是转换并且压缩过的图片
        })
      })
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值