zoukankan      html  css  js  c++  java
  • react截图组件react-cropper的使用方法

    在使用React开发中我们经常会遇到上传图片的情况,如果要使的上传的图片符合一定的规格,那么便要在客户端对上传的图片进行一定的裁剪,这个时候我么便可以使用到

    react-cropper这个图片裁剪组件,可以帮助我们轻松的实现图片裁剪功能。使用步骤如下:

    1. 安装:
      npm install --save-dev react-cropper
    2. 使用方法如下:
      import React from 'react'
      import Cropper from 'react-cropper'
      import 'cropperjs/dist/cropper.css'
      import {Button} from 'antd'
      
      export default class Crop extends React.Component {
          constructor() {
              super();
              this.cropImage = this.cropImage.bind(this);
          }
      
          cropImage() {
              if (this.cropper.getCroppedCanvas() === 'null') {
                  return false
              }
              this.props.getCropData(this.cropper.getCroppedCanvas().toDataURL())
          }
      
          render() {
              return (
                  <div>
                      <div style={{ '100%'}}>
                          <Cropper
                              src={this.props.src}
                              ref={cropper => {
                                  this.cropper = cropper;
                              }}
                              style={{height: 400,  '100%'}}
                              aspectRatio={246/346}
                              guides={false}
                          />
                      </div>
                      <div>
                          <Button type="primary" size="large" onClick={this.cropImage} style={{marginTop: '10px'}}>
                              确认裁剪
                          </Button>
                      </div>
                  </div>
              );
          }
      }
    import Cropper from 'react-cropper'
    import 'cropperjs/dist/cropper.css'

    这两句分别引入Cropper组件和它的样式,Cropper组件还有一些常用的属性:

    1. src:src是要裁剪的图片的src,一般是上层组件读取到的图片的Base64编码
    2. aspectRatio:这是控制裁剪后的图片的比例

    裁剪框底部还有一个按钮来确认是否裁剪,从上面我们可以看到其绑定的事件:

    cropImage() {
            if (this.cropper.getCroppedCanvas() === 'null') {
                return false
            }
            this.props.getCropData(this.cropper.getCroppedCanvas().toDataURL())
        }

    this.cropper使我们使用的react的ref属性保存的Cropper组件的DOM节点的引用,不清楚的可以去看React官方文档,这个组件提供了一个getCroppedCanvas()方法,这个方法返回的是裁剪得到的图片,我们可以使用

    toDataURL()方法将其转化为Base64编码上传到上一级的组件。

  • 相关阅读:
    Java从指定目录下加载class文件
    超市问题
    SpringBoot中的thymeleaf布局
    SpringBoot 异步支持
    Groovy 脚本引发的 Old GC问题
    Java8 新特性笔记
    MySQL字段默认值踩坑记录
    SpringMVC接收Postman post json数据
    如何实现远程办公安全
    打印机打印的文档或图像出现白色横纹如何解决?
  • 原文地址:https://www.cnblogs.com/txwslyf/p/7110209.html
Copyright © 2011-2022 走看看