Vue 使用vue-cropper截图

本文详细介绍了如何使用Vue-Cropper截图组件,包括安装依赖、页面引入、参数配置、组件注册及内置方法调用。同时,提供了获取截图图片的方法。

使用vue-cropper截图

1.下载vue-cropper依赖

npm install vue-cropper

2.在使用的页面引入

 import VueCropper from 'vue-cropper'

3.页面使用

      <vueCropper ref="cropper" :img="option.img" :outputSize="option.outputSize" :outputType="option.outputType" :info="option.info"
        :canScale="option.canScale" :autoCropWidth="option.autoCropWidth" :autoCropHeight="option.autoCropHeight"
        :fixed="option.fixed" :fixedNumber="option.fixedNumber" :full="option.full" :fixedBox="option.fixedBox"
        :canMove="option.canMove" :canMoveBox="option.canMoveBox" :original="option.original" :autoCrop="option.autoCrop"
        :centerBox="option.centerBox" :infoTrue="option.infoTrue" :high="option.high" :maxImgSize="option.maxImgSize"
        :enlarge="option.enlarge" :mode="option.mode" :modal="option.modal"></vueCropper>
    </div>

4.data里的参数

option: {
          img: '', // 裁剪图片的地址
          info: false, // 裁剪框的大小信息
          outputSize: 1, // 裁剪生成图片的质量
          outputType: 'png', // 裁剪生成图片的格式
          canScale: true, // 图片是否允许滚轮缩放
          autoCrop: true, // 是否默认生成截图框
          autoCropWidth: 100, // 默认生成截图框宽度
          autoCropHeight: 100, // 默认生成截图框高度
          fixed: true, // 是否开启截图框宽高固定比例
          fixedNumber: [1, 1], // 截图框的宽高比例
          fixedBox: false, // 固定截图框大小 不允许改变
          full: false, // 是否输出原图比例的截图
          canMove: false, //上传图片是否可以移动
          canMoveBox: true, // 截图框能否拖动
          original: false, // 上传图片按照原始比例渲染
          centerBox: true, // 截图框是否被限制在图片里面
          high: false, //是否按照设备的dpr 输出等比例图片
          infoTrue: true, // true 为展示真实输出图片宽高 false 展示看到的截图框宽高
          maxImgSize: 2000, //限制图片最大宽度和高度
          enlarge: 1, //图片根据截图框输出比例倍数
          mode: 'contain', //图片默认渲染方式 contain , cover, 100px, 100% auto
        },

5.注册组件

    components: {
      VueCropper,
    },

6.官网上的内置方法

this.$refs.cropper.startCrop() 开始截图
this.$refs.cropper.stopCrop() 停止截图
this.$refs.cropper.clearCrop() 清除截图
this.$refs.cropper.changeScale() 修改图片大小 正数为变大 负数变小
this.$refs.cropper.getImgAxis() 获取图片基于容器的坐标点
this.$refs.cropper.getCropAxis() 获取截图框基于容器的坐标点
this.$refs.cropper.goAutoCrop 自动生成截图框函数
this.$refs.cropper.rotateRight() 向右边旋转90度
this.$refs.cropper.rotateLeft() 向左边旋转90度

7.获取截图后的图片

// 获取截图的base64 数据
this.$refs.cropper.getCropData((data) => {
  // do something
  console.log(data)  
})
 
// 获取截图的blob数据
this.$refs.cropper.getCropBlob((data) => {
  // do something
  console.log(data)  
})

 

在 uniapp + vue 项目中使用裁剪相关组件有不同的情况,以下为几种可能涉及的使用方法: ### 使用 vue-cropper - **安装**:可以使用 npm 或 yarn 进行安装。npm 安装命令为 `npm install vue-cropper@next -d --save`;yarn 安装命令为 `yarn add vue-cropper@next` [^1]。 - **引入组件**:以局部引入为例,在需要使用的组件中引入,示例代码如下: ```vue <template> <!-- 使用 vue-cropper 组件 --> </template> <script> import VueCropper from 'vue-cropper' export default { name: 'App', components: { VueCropper } } </script> ``` ### 使用 vue-cropper-h5 - **引入项目**:可选择全局引入或者局部引入,以局部引入为例,代码如下: ```vue <template> <!-- 使用 H5Cropper 组件 --> </template> <script> import H5Cropper from 'vue-cropper-h5' export default { name: 'App', components: { H5Cropper } } </script> ``` [^2] ### 使用 vk-uview-ui 的 u-avatar-cropper - **配置 page.json**:若插件方式配置 page.json 不行,可采取 npm 下载的方式。首先在 pages 目录下创建目录(如 u-avatar-cropper/index.vue,该目录可自定义),将 `uni_modules/vk-uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue` 文件内容复制过来,同时修改复制过来内容内的一些引入资源的路径 [^3]。 ### 使用 ksp-cropper 若在使用 ksp-cropper 时遇到问题,如需要解决旋转缩放相关问题,可进入源码 `uni_modules` 下面,找到 `ksp-cropper.vue` 文件,将其中的 `event.preventDefault(); event.stopPropagation();` 两行代码注释 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值