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 (
                
    <Cropper src={ this.props.src} ref={cropper => { this.cropper = cropper; }} style={ {height: 400, width: '100%'}} aspectRatio={246/346} guides={ false} />
    ); } }
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编码上传到上一级的组件。

转载于:https://www.cnblogs.com/txwslyf/p/7110209.html

你可能感兴趣的:(javascript)