react截圖組件react-cropper的使用方法

在使用React開發中咱們常常會遇到上傳圖片的狀況,若是要使的上傳的圖片符合必定的規格,那麼便要在客戶端對上傳的圖片進行必定的裁剪,這個時候我麼即可以使用到css

react-cropper這個圖片裁剪組件,能夠幫助咱們輕鬆的實現圖片裁剪功能。使用步驟以下:react

  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={{width: '100%'}}>
                        <Cropper
                            src={this.props.src}
                            ref={cropper => {
                                this.cropper = cropper;
                            }}
                            style={{height: 400, width: '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組件還有一些經常使用的屬性:npm

  1. src:src是要裁剪的圖片的src,通常是上層組件讀取到的圖片的Base64編碼
  2. aspectRatio:這是控制裁剪後的圖片的比例

裁剪框底部還有一個按鈕來確認是否裁剪,從上面咱們能夠看到其綁定的事件:antd

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

this.cropper使咱們使用的react的ref屬性保存的Cropper組件的DOM節點的引用,不清楚的能夠去看React官方文檔,這個組件提供了一個getCroppedCanvas()方法,這個方法返回的是裁剪獲得的圖片,咱們能夠使用ide

toDataURL()方法將其轉化爲Base64編碼上傳到上一級的組件。ui

相關文章
相關標籤/搜索