这个项目能做什么

# react-native-image-crop-picker 一个React Native模块,用于从设备相册或相机选择图片和视频,支持裁剪、压缩、多选以及各种自定义选项。它适用于iOS和Android。 ## 功能 - **相册和相机**:直接打开系统选择器或相机。 - **裁剪**:启用裁剪,可自定义尺寸、圆形覆盖层、自由样式裁剪和旋转手势(Android)。 - **多选**:一次选择多张图片或多个视频。 - **压缩**:通过最大宽度/高度/质量压缩图片,以及通过预设压缩视频(iOS)。 - **媒体类型**:按照片、视频或任意类型筛选。 - **Base64和EXIF**:可选地在响应中包含base64数据和EXIF元数据。 - **清理**:删除选择过程中创建的临时文件。 - **自定义**:广泛的UI颜色、文本和行为选项(例如,裁剪框、参考线、工具栏)。 ## 安装 ```bash npm i react-native-image-crop-picker --save ``` 对于iOS,运行`cd ios && pod install`。在`Info.plist`中添加使用说明(例如,`NSPhotoLibraryUsageDescription`用于照片库访问)。对于Android,在`AndroidManifest.xml`中添加必要权限(例如,相机、存储)。 ## 用法 ```javascript import ImagePicker from 'react-native-image-crop-picker'; // 单张图片带裁剪 ImagePicker.openPicker({ width: 300, height: 400, cropping: true }) .then(image => console.log(image)) .catch(error => console.log(error)); // 多张图片 ImagePicker.openPicker({ multiple: true }) .then(images => console.log(images)); // 仅视频 ImagePicker.openPicker({ mediaType: 'video' }) .then(video => console.log(video)); // 相机 ImagePicker.openCamera({ width: 300, height: 400, cropping: true }) .then(image => console.log(image)); // 裁剪现有文件 ImagePicker.openCropper({ path: 'file-path.jpg', width: 300, height: 400 }) .then(image => console.log(image)); ``` ## 选项 关键选项包括`cropping`、`width`、`height`、`multiple`、`mediaType`、`includeBase64`、`includeExif`、`compressImageMaxWidth`、`compressImageMaxHeight`、`compressImageQuality`、`freeStyleCropEnabled`、`cropperCircleOverlay`等。完整列表请参阅README。 ## 响应 每个选中的资源包含`path`、`width`、`height`、`mime`、`size`、`duration`(视频)、`data`(如果base64)、`exif`和`cropRect`等属性。iOS还提供`localIdentifier`、`sourceURL`、`creationDate`和`modificationDate`。 ## 注意事项 - 对于React Native新架构,请使用版本>= 0.50.0。 - 在Android上,选择视频时避免将`cropping`设置为`true`,因为它可能隐藏相册中的视频。 - 该模块会创建临时文件;使用`clean()`或`cleanSingle(path)`删除它们。 ## 许可证 MIT(由仓库隐含,但提供的README中未明确说明)。