vue 中 截图或者裁剪图片

需求是做个在一张图片上截取部分功能,类似于截图,也是裁剪,如果是截图可以用html2canvas 来做,它是用canvas来做的,会把你指定的dom通过canvas转成图片,但是如果你要截取部分,这个就不好用,这次我用的是vue-cropper 这个插件

npm install vue-cropper
引入

import VueCropper from 'vue-cropper'
Vue.use(VueCropper)

template 部分

<template>
  <div>
    <div style="width: 600px; height: 400px">
      <vueCropper
        ref="cropper"
        :img="option.img"
        :outputSize="option.outputSize"
        :outputType="option.outputType"
        :full="option.full"
      ></vueCropper>
      <img :src="ImgSrc" alt="" />
      <Button @click="start">开始截图</Button>
      <Button @click="end">结束截图</Button>
    </div>
  </div>
</template>

javascript部分

<script>
  import { VueCropper } from 'vue-cropper';
  export default {
    components: {
      VueCropper
    },
    data() {
      return {
        headImg: '',
        // 剪切图片上传
        crap: false,
        previews: {},
        option: {
          img: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=994548078,2275672242&fm=26&gp=0.jpg',
          outputSize: 1, // 剪切后的图片质量(0.1-1)
          full: true, // 输出原图比例截图 props名full
          outputType: 'png',
          canMove: true,
          original: false,
          canMoveBox: true,
          autoCrop: true,
          autoCropWidth: 300,
          autoCropHeight: 150,
          fixedBox: true
        },
        ImgSrc: ''
      }
    },
    methods: {

      start() {
        this.$refs.cropper.startCrop()
      },
      end() {
        this.$refs.cropper.getCropData((data) => {
          console.log(data)
          this.ImgSrc = data   //转成base64了
          if (data) {    // 拿到之后再清除
            this.$refs.cropper.clearCrop()
          }
        })
      }
    }

  }
</script>

接下来你就可以看到效果了
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值