Skip to content

结合了antd Upload的图片裁剪功能,在上传前可以对图片进行裁剪。使用方式跟Upload一样。可以结合form一起使用

Notifications You must be signed in to change notification settings

miaowwwww/antd-image-crop-upload

Repository files navigation

AntdImageCropUpload

  • 结合了 antd 的 Upload 组件和 react-image-crop
    <!--使用方式和antd的Upload一致,仅在上传是增加图片的裁剪功能-->
    <AntdImageCropUpload> add </AntdImageCropUpload>

  • 入参在Upload的基础上增加了一些
export interface AntdImageCropUploadProps extends UploadProps {
  /** 裁剪前校验文件, 返回 false 则停止裁剪,不上传 */
  beforeCrop?: (file: RcFile, FileList: RcFile[]) => boolean;

  /** 裁剪框的初始参数 aspect: 是否固定裁剪框的比例 */
  initCrop?: {
    x: number; // 裁剪框坐标点
    y: number; 
    width?: number; // 裁剪框的大小 - (单位:%)
    height?: number;
    aspect?: number; // 宽高的比例 w / h (例如:320 / 280 )
  }
  
  /** 
   * 裁剪后的图片的物理宽高设置
   * 如果不设置则按原始尺寸的比例获取
   * 如果设置则裁剪后的图片将被拉伸为设置值
   * 注意,initCropp.aspect 会以targetImage设置的 w/h 为准
   */
  targetImage?: {
    width: number;
    height: number;
  }

  /** 
   * 是否只允许上传图片格式的文件
   * 默认为true,即只接受图片文件
   * 为false 时, 文件不经过裁剪,直接使用Upload的默认上传
   */
  imageOnly: boolean;

  /** 
   * 裁剪弹窗的props
   * props 中:visible, onOk, onCancel,okButtonProps 将受到控制
   */
  modalProps?: ModalProps;
}

注意!!!

  • 组件不支持自定义上传!

如果 beforeUpload 返回 false,其效果跟返回 Promise.reject() 是一样的

  • 允许裁剪的图片-只有符合的才能接受裁剪

const ImageTypeReg = /.(jpg|jpeg|png|gif)$/i;

  • 只允许一个一个文件上传

About

结合了antd Upload的图片裁剪功能,在上传前可以对图片进行裁剪。使用方式跟Upload一样。可以结合form一起使用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published